【发布时间】:2016-09-27 13:18:55
【问题描述】:
服务器如何通过之前连接到服务器的客户端打开 TCP 连接?假设我们有如下代码所示的简单服务器;服务器等待客户端连接,处理程序线程为连接的客户端提供服务。客户端如下,每次想和服务器做一个操作,重新建立连接,与服务器通信然后关闭连接。那么,如果服务器想通过客户端打开 TCP 连接(当客户端与服务器之间没有活动连接时),该怎么做呢?
服务器代码
public class DServer {
public static void main(String[] args) {
ServerSocket serverSocket = new ServerSocket(7800);
while(true) {
Socket socket = serverSocket.accept();
System.out.println("Server established a new connection");
HandleConnection handler = new HandleConnection(socket);
handler.start();
}
}
}
客户代码
public class DClient{
public static void main(String[] args) {
Socket socket = new Socket("localhost", 7800);
ObjectOutputStream out = new ObjectOutputStream(socket.getOutputStream());
ObjectInputStream in = new ObjectInputStream(socket.getInputStream());
//for every operation you do, first reestablish the connection,
//communicate with server, then close the connection.
}
}
【问题讨论】:
标签: java sockets tcp client-server