C# 识别具有多个异步tcp客户端的套接字

C# 识别具有多个异步tcp客户端的套接字,c#,.net,tcp,tcpclient,C#,.net,Tcp,Tcpclient,我的应用程序有许多tcpclient,在接到指示时用于更新数百台服务器。我在设计上遇到了一个小问题,但很重要 我的程序从队列中取出一条传出消息,并从客户机数组中选择一个可用的客户机,我将此称为client1。它使用BeginConnect在tcpclient上启动连接,并发出回调方法。然后,程序从队列和将要发送消息的TCP客户端转到其他消息 当client1发生回调时,我的程序会得到一个异步结果,我可以从中解析套接字 这是我的问题。我如何知道我有哪个套接字或TCP客户端?这很重要,因为我需要知道

我的应用程序有许多tcpclient,在接到指示时用于更新数百台服务器。我在设计上遇到了一个小问题,但很重要

我的程序从队列中取出一条传出消息,并从客户机数组中选择一个可用的客户机,我将此称为client1。它使用BeginConnect在tcpclient上启动连接,并发出回调方法。然后,程序从队列和将要发送消息的TCP客户端转到其他消息

当client1发生回调时,我的程序会得到一个异步结果,我可以从中解析套接字

这是我的问题。我如何知道我有哪个套接字或TCP客户端?这很重要,因为我需要知道在这个连接的客户端上发送哪条消息

我查看了套接字,没有找到name属性

如何识别套接字,以便知道要进行的正确消息传递对话


谢谢

经过更多的研究,我意识到回调将传递任何System.Object。因此,答案很简单,只需将TCPClient包装在一个类中,该类具有可以识别其用途的属性


在我的例子中,一个带有套接字、消息字符串、IP字符串和端口int的简单类足以在回拨时处理situate。请记住,您必须将IAsyncResult.AsyncState强制转换回包装类的类型。

您是否检查过对象是否公开任何内容,如Ipaddress或名称..等。。。?如果不尝试谷歌搜索,这可能会给你一些想法。你的每个客户端是否连接到一个唯一的服务器(IP地址/端口),或者你的每个客户端是否使用唯一的本地端点(IP地址/端口)?MethodMan,很好。我花了大约一个小时查看了多个客户端,只得到了服务器示例,hahaha.Sharfer,每个客户端都有一个唯一的IP,但它们都使用相同的端口。