对于每个Tcp连接,我必须到服务器,我如何单独管理每个?

时间:2012-10-28 22:01:26

标签: c# .net networking tcp client

假设我有一个侦听TCP端口的服务器(通过TcpListener),并且我有五个不同的连接到该服务器(通过TcpClient)。如何在不向错误的客户提供错误信息的情况下,通过流向每个人发送信息。
例如:
五个客户端都连接到服务器。 我必须向客户端1发送消息“这是一条消息”,但我不想将该消息发送到客户端2,3,4和5.我还想向客户端3发送消息“这是另一条消息”和5但不发送该消息给客户端1,2和4。
我到底该怎么做呢?

2 个答案:

答案 0 :(得分:2)

TcpListener类的方法为AcceptSocketAcceptTcpClient。对于连接到服务器的每个客户端,它们返回不同的Socket(或TcpClient - 您使用这些对象将数据发送到各个客户端。

答案 1 :(得分:2)

接受Socket或调用AcceptTcpClient后,您可以使用端点区分它们。如果您想知道将哪些端点发送到哪个端点,则应使用其连接所在的IP和/或端口来区分它们。您可以参考此帖子了解如何执行此操作getting-the-ip-address-of-a-remote-socket-endpoint

编辑:您可以查看如何发送/接收数据,例如here