序:
我有一个异步套接字服务器,我们接收遥测数据,当远程设备不向我们发送数据时,我们可以发送命令来请求数据。侦听器和命令处理在不同的线程上完成。侦听器侦听一个端口,而命令在另一个端口上发送。
我的整体问题是:C#是否可以检查套接字是否已连接而无需首先调用“connect”方法?我们的客户设备将建立与服务器的连接,并将始终保持连接(除非服务覆盖范围下降或电池耗尽等)。我希望尽可能避免跟踪内存中所有已连接的套接字对象。
说实话,我甚至不确定我所问的是否可行。我想听听别人的想法。
答案 0 :(得分:1)
如果您知道套接字信息,则可以调用GetExtendedTcpTable并获取套接字的状态(“已建立”或未建立)。
有关pinvoking此功能的示例,请参阅: http://social.msdn.microsoft.com/Forums/en-US/netfxnetcom/thread/5b8eccd3-4db5-44a1-be29-534ed34a588d/