繁体   English   中英

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

[英]Identify the socket with multiple async tcp clients

我的应用程序有许多tcpclients,可用于在指示时更新数百个服务器。 我在设计时遇到了一个小而重要的问题。

我的程序从队列中取出传出消息,并从一系列客户端中选择一个可用的客户端,我将其称为client1。 它使用BeginConnect在tcpclient上启动连接,并发出回调方法。 然后,程序从队列和将发送它们的tcpclients移至其他消息。

当client1发生回调时,我的程序将获得一个AsyncResult,我可以从中解析套接字。

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

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

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

谢谢!

经过更多的研究和研究,我意识到回调将传递任何System.Object。 因此,答案很简单,就像将TCPClient包装在一个具有可以确定其目的的属性的类中一样。

在我的情况下,一个简单的类,带有一个Socket,消息的字符串,IP的字符串和Port的int,足以处理返回时的情况。 只要记住您必须将IAsyncResult.AsyncState强制转换回包装器类的类型即可。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM