通过RS232连接打开插座

时间:2009-06-15 08:15:26

标签: .net sockets

我有一个'C#server'程序使用.NET套接字监听'127.0.0.1',端口5500,我有一个相应的C#客户端程序从同一台PC向此套接字发送消息。他们都很好。

现在如果我在单独的PC上运行“客户端”和“服务器”程序并通过连接其串行端口(RS232)的电缆连接它们,我是否应该对代码进行更改以使其工作?我问,因为我没有2台PC需要检查,但是在部署时需要它才能工作。

感谢。

4 个答案:

答案 0 :(得分:7)

好吧,如果两台计算机都有适当的驱动程序将串行端口视为网络连接,那么它应该无需任何更改即可运行。

否则,您必须使用SerialPort课程。明确地通过串口进行通话。

您可能会发现最好抽象代码以使其适用于 - 然后您可以从网络连接获取流串行连接,并且大多数你的代码不需要改变。

答案 1 :(得分:1)

如果服务器绑定到127.0.0.1然后是,则需要将其设置为0.0.0.0

原因是如果套接字绑定到IP地址,它将只接受该IP地址上的请求。 127.0.0.1仅用作机器IP地址(如果发起方位于同一台机器上)(它是一个单独的网络接口,设置为环回)。 0.0.0.0表示“任何IP地址”,因此您可以打开一个套接字,接受来自机器上任何网络接口的传入连接。

至于通过串行电缆运行...不知道这是否有效,并且很可能需要进行大量设置。

答案 2 :(得分:0)

如果你沿着这条路走下去,你会感到很痛苦: - )

TCP / IP 通常通过以太网工作 - 我从未见过在RS232串口上运行物理层的驱动程序,尽管这绝不是不可能的。

最好使用标准网线连接这两台机器。

答案 3 :(得分:0)

TCP / IP也适用于SLIP。还记得以前用来连接互联网的旧方式吗? PPP也会起作用。但我不认为这就是他在寻找的东西。