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