服务器和客户端之间的多个套接字

时间:2014-04-14 20:45:07

标签: java sockets

我有一个java服务器应用程序,它通过SocketChannel与多个客户端通信。在此通道上,客户端发送请求,服务器发送答案。现在我想添加服务器可以将文件发送到客户端的功能。我不想通过我用于通信的套接字发送它,所以在一个客户端和一个服务器之间有更多的套接字是个好主意吗?如果是,如何处理它们?我使用过这样的东西吗?

SocketChannel socket = serverSocket.accept()
if(!addressSet.contains(socket.address)) {
    it is comunicate socket
}
else {
    it is date transfer socket
}

还是有更好的方法吗?

2 个答案:

答案 0 :(得分:2)

接受客户端连接后,在随机端口上创建一个新的ServerSocket,然后告诉他该端口号。然后他应该连接到那个作为数据连接。然后,让服务器接受来自它的一个连接,最好是来自他,然后关闭该ServerSocket。它并非万无一失,但它相当强大。

答案 1 :(得分:-1)

是的,有更好的方法。 使用ServerSocketChannel和方法public abstract SocketChannel accept() throws IOException