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