如何在多个连接的客户端中从服务器向选定客户端发送响应?

时间:2015-10-26 11:16:32

标签: java sockets

我正在使用套接字编程开发一个应用程序。其中,服务器可以连接到多个客户端。当服务器发送响应按摩时,它会转到任何一个连接的客户端。但我想将它发送到特定的选定客户端。所以我怎么能实现它?我是套接字编程的新手。请帮助我解决它。谢谢先进的

1 个答案:

答案 0 :(得分:0)

当您调用serverSocket.accept()并且客户端连接到服务器时,accept()方法返回Socket对象,您通过此Socket对象与客户端进行通信。

您需要做的就是创建一个列表List<Socket> myClientSockets 并且在致电Socket client = serverSocket.accept()后,您只需将client对象添加到myClientSockets。现在,您可以选择要与之通信的客户端。

<强>编辑:

假设你有类似的东西

List<Socket> myClientSockets = new ArrayList<Socket>();

while(true)
{
    Socket client = serverSocket.accept()
    myClientSockets.add(client);
}

然后,您可以从myClientSockets获取客户端套接字,例如索引。

Socket obtainedSocket = myClientSockets.get(myIndex); //you choose the index

同样,您可以使用foreach(for)循环遍历myClientSockets并获取符合条件的客户端套接字。

然后你可以得到OutputStream

OutputStream obtainedSocketOutputStream = obtainedSocket.getOutputStream()