我有一个java服务器应用程序,它通过SocketChannel
与多个客户端进行通信。在此 channel 上,客户端发送请求,服务器发送应答。现在我想添加服务器可以将文件发送到客户端的功能。我不想通过我用于通信的套接字发送它,所以在一个客户端和一台服务器之间拥有更多套接字是个好主意吗?如果是的话如何处理?我用过这样的东西吗?
SocketChannel socket = serverSocket.accept()
if(!addressSet.contains(socket.address)) {
it is comunicate socket
}
else {
it is date transfer socket
}
或者有更好的方法吗?
最佳答案
接受客户端连接后,在随机端口上创建一个新的 ServerSocket,然后告诉他该端口号。然后他应该将其作为数据连接进行连接。然后,让服务器接受来自它的一个连接,最好是来自他的连接,然后关闭该 ServerSocket。它并非万无一失,但相当强大。
关于java - 服务器和客户端之间的多个套接字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23070062/