我有一个客户端和一个服务器 . 当客户端连接到服务器时,服务器会向客户端发送消息 . 如果用户单击“新消息”按钮,我希望服务器向客户端发送新消息 . 我怎样才能做到这一点?
我的代码(我删除了所有try-Catch)
客户:
private void getExpression() {
Socket s = null;
s = new Socket(serverAddress, serverPort);
out = new ObjectOutputStream(s.getOutputStream());
in = new ObjectInputStream(s.getInputStream());
while (true) {
Expression exp = (Expression) in.readObject();
String message = exp.toString();
expressionLabel.setText(message);
}
}
public void newMessage() throws IOException {
//MAKE SERVER SEND NEW MESSAGE
}
@Override
public void actionPerformed(ActionEvent ae) {
if (ae.getSource().equals(newButton)) {
newMessage();
}
}
处理器:
public class Handler extends Thread {
private Socket socket;
private String address;
public Handler (Socket s) {
socket = s;
address = socket.getInetAddress().getHostAddress();
}
@Override
public void run() {
ObjectInputStream in = null;
ObjectOutputStream out = null;
out = new ObjectOutputStream(socket.getOutputStream());
in = new ObjectInputStream(socket.getInputStream());
out.writeObject(new Expression());
out.flush();
}
服务器:
private int port;
public TestProgram(int port) {
this.port = port;
go();
}
public void go() {
ServerSocket ss = null;
ss = new ServerSocket(port);
while (true) {
Socket s = ss.accept();
new Handler(s).start();
}
}
1 回答
你想要得到什么信息?随机消息或预设的内容?正在使用Gui?
如果你使用gui并试图收到消息,我希望你做的事情就像
Your Back End Client Could Look Something Like This
这是一个样本,所以撕开它并使用你想要的东西:
Your Back End Server Should Look Something Like This