guessclient.java
来自「java learn PPT java learn PPT java learn」· Java 代码 · 共 129 行
JAVA
129 行
import java.awt.*;
import java.awt.event.*;
import java.applet.*;
import java.net.*;
public class GuessClient extends Applet implements ActionListener
{
public final static int DEFAULT_PORT = 1234;
// 供用户输入的TextField
private TextField textField;
// 提交猜测结果的按钮
private Button button;
// 显示从服务器传来的消息
private Label message;
// 和服务器通信用的连接
private AbstractConnection client;
public void init()
{
textField = new TextField("", 10);
add(textField);
button = new Button("Guess!");
button.addActionListener(this);
add(button);
message = new Label();
add(message);
// 得到作为applet参数的端口号
int port = Integer.parseInt(getParameter("Port"));
if (port == 0)
{
port = DEFAULT_PORT;
}
// 得到作为applet参数的主机名
try
{
// 创建客户端
client = new AbstractConnection(new Socket(getParameter("Host"), port));
// 打开客户连接
if(! client.open())
{
message.setText("Could not open connection " +
getParameter("Host") + " : " + port);
}
}
catch(Exception e)
{
message.setText("Could not open connection " +
getParameter("Host") + " : " + port);
disableControls();
return;
}
}
public void start()
{
String str = "";
// 等待初始化服务消息
client.recv();
str = client.parseHeader();
if(str.equals("Prompt"))
{
message.setText(client.parseMessage());
}
else
{
message.setText("Unrecognized server response");
disableControls();
return;
}
}
private void disableControls()
{
textField.setEnabled(false);
button.setEnabled(false);
}
public void actionPerformed(ActionEvent e)
{
// 如果文本域是空的则什么也不做
if(textField.getText().trim().equals("")) return;
// 临时禁止输入按钮
button.setEnabled(false);
// 把猜测结果发送到服务器
client.send("Guess", textField.getText().trim());
// get the server response
String str = "";
client.recv();
str = client.parseHeader();
// 服务器会在终止服务前发出一个回显命令
if(str.equals("Echo"))
{
// 接收消息直到 EOT
while(! str.equals(AbstractConnection.END_OF_TRANSMISSION))
{
message.setText(client.parseMessage());
client.recv();
str = client.parseHeader();
}
disableControls();
return;
}
// 如果有提示命令则设置消息标签文本
else if(str.equals("Prompt"))
{
message.setText(client.parseMessage());
}
button.setEnabled(true);
}
} // GuessClient
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?