通过RS232连接打开一个套接字

3
我有一个使用.NET socket监听 '127.0.0.1',端口为5500的 'C# server' 程序,同时我还有对应的 'C# client' 程序,可以从同一台计算机上向该套接字发送消息。它们都运行良好。
现在,如果我在不同的计算机上运行 'client' 和 'server' 程序,并通过连接它们的串行端口(RS232)进行连接,那么我是否需要更改代码才能使它们工作?我这样问是因为我没有两台计算机来检查,但需要在部署时正常工作。
谢谢。
4个回答

7

如果两台计算机都有适当的驱动程序将串行端口视为网络连接,那么它应该可以在不进行任何更改的情况下正常工作。

否则,您需要使用SerialPort类来明确地通过串行端口进行通信。

您可能会发现最好将代码抽象化,使其可以在流上运行-然后您可以从网络连接或串行连接获取流,并且大部分代码都不需要更改。


1

如果服务器绑定到127.0.0.1,那么是的,您需要将其设置为0.0.0.0。

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

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


0
TCP/IP 也可以在 SLIP 上运行。还记得你以前连接互联网的方式吗?PPP 也可以使用。但我不认为这是他想要的。

TCP/IP 带有流抽象,正如 Jon Skeet 所说,这是我现在正在使用的。目前正在测试 - 目前为止还不错。 - Chakra

0
如果您继续沿着这条路走下去,那么您将会遭受很多痛苦 :-)
TCP/IP通常在以太网上工作 - 我从未见过一种可以在RS232串行端口上运行物理层的驱动程序,尽管这并非不可能。
最好使用标准网络电缆连接这两台机器。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接