防火墙后的设备建立并维护与我的服务器的套接字连接。我通过已建立的连接与设备交谈。这个模式叫什么,我在哪里可以获得更多信息、.net 代码示例等?
背景 - 我们的设备只有串行端口,我们在客户站点使用 GSM 调制解调器。然后,我们从办公室调用每个调制解调器以检索数据。问题是移动宽带(GPRS/UMTS 等),尤其是用于少量数据的 M2M 很便宜。电路交换数据(调用调制解调器和传真)很昂贵,在一些国家被弃用、不受支持甚至不可用(泰国)。所以我们正在反转模式并在调制解调器中使用 GPRS+TCP 套接字功能。
我已经在我的“自动数据检索器”中实现这个用于发送定义的数据包(例如“给我你的序列号”)并期待对我的请求的响应(等到整个响应已到达并带有已知的字节数和/或已知的停止序列)。
我想要实现的是类似于串行端口(轮询缓冲区并读取所有新字节)或事件模型(SendBytes/NewBytesReceived)或更现代的东西(响应式(Reactive)扩展?) .
我的最终目标是一个小型服务器,它只做这个,允许多个程序连接到远程设备。然后我可以运行一个“配置”应用程序来配置设备 98,同时允许“自动数据检索器”与设备 13、18 和 27 一起工作。
奖金问题 - 你会给这个服务器/模式起什么名字?
最佳答案
防火墙经过编程,因此它们将对设备发起的任何 tcp 连接的应答转发回原始设备。
防火墙后面的设备必须始终是发起连接的设备。
服务器很简单,只需等待预定义端口中的连接,然后创建一个新线程来处理每个新的传入连接。这样服务器就可以同时处理多个连接。
请记住,如果连接长时间处于空闲状态,防火墙可能会失去与原始设备的关联。您可以实现保持事件机制,或者在您的设备每次空闲时关闭连接。
关于.net - 通过已建立的连接与防火墙后面的设备对话 - 如何?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13566684/