.NET网络互联解决方案

环境:下位机做为服务端,上位机为客户端,协议为UDP。
以下尝试2种方式,不知采用哪种。如有更好的方案,麻烦提出指正,多谢了!
1.下位机是否烧的时候,把IP固定,上位机通过交换机进行连接通讯?
2.下位机连接路由器,由路由一体机分配动态IP,然后在路由器管理页面,绑定下位机MAC与IP后,上位机通过其网口连接通讯?

1.如果数据需要保证稳定可靠,不建议使用udp。
现场环境很难保证udp不丢包,不乱序。你要自己定义一套序号和重传机制反而麻烦。
如果非要使用udp可以使用udp的升级版本,Rudp(可靠用户数据报协议)

2.对于udp本身无需ip绑定,也无需在路由器绑定mac(除非你打算弄啥NAT穿网操作)
如果没有NAT穿网要求,下位机只需在代码里写成 "0.0.0.0:你们商定的固定端口号"即可
参考


博文说的很明确了,INADDR_ANY=0.0.0.0=所有地址、不确定地址、任意地址,既bind所有本机网卡的所有地址。

所以下位机只要和你在同一局域网中,只要你能互相ping通即可通讯。无需在路由上去分配静态ip映射规则

另外补充一下:通常下位机会有一个自己的管理页,参考海康摄像头,他有自己的管理页,可以在现场随时配置ip(一般是重启后生效)
或者他自己出厂默认一个地址,然后你用双机直连方式采用teletnet方式用命令行修改
ps:海康大厂有些东西还是不错的,有管理页,也有设备发现协议。--------如果你在同一个网里,而你不知道他在哪里,你可以用设备发现协议发现他,然后在用配置工具配置,这种就比先写死ip要方便很多了

最好不要固定,否则很难替换,可以用类似域名,但是局域网的命名系统,WINS

一般采用的方式是服务器ip地址固定,上位机通过交换机进行连接通讯。
如果采用方案二,上位机必须先从路由器获得下位机的ip地址,才能与下位机进行udp通讯。不然上位机不知道下位机的ip地址无法与下位机通讯。

该回答引用GPTᴼᴾᴱᴺᴬᴵ
对于UDP协议的通讯方式,两种方式都可以实现连接通讯,具体采用哪种方式取决于实际情况和需求。

  1. 下位机固定IP地址,上位机通过交换机连接
    这种方式适用于下位机和上位机在同一局域网内,可以通过交换机连接。下位机固定IP地址后,上位机可以通过该IP地址进行连接通讯。这种方式实现起来简单,但是需要注意IP地址的冲突问题。

  2. 下位机连接路由器,通过路由器进行连接
    这种方式适用于下位机和上位机在不同的局域网内,需要通过路由器进行连接。下位机连接路由器后,可以通过路由器分配的动态IP地址进行连接通讯。同时,可以在路由器管理页面绑定下位机的MAC地址和IP地址,避免IP地址冲突问题。这种方式可以实现远程连接通讯,但是需要考虑网络延迟和安全性等问题。
    ·
    需要注意的是,在实现网络通讯时,需要确保下位机和上位机之间的通讯协议一致,同时需要考虑网络延迟和数据传输的可靠性等问题。可以选择使用TCP/IP协议来保证数据传输的可靠性,但是TCP/IP协议的实现相对复杂。如果数据传输的实时性较高,可以选择使用UDP协议来实现数据传输。