(9)V2.0版的程序实现的功能-UDP

日期 2001-12-3
作者 老古 http://www.laogu.com Email:zhangshenggu@vip.163.com
内容

三 UDP测试

 
(5)、验证UDP功能。
我们在电脑A里运行udpdemo.exe程序(我编写的UDP的收发程序,用Delphi5.0开发的,程序及源代码在此下载。2001年12月编写)

(注:该版本是用早期的delphi 5开发的,在winxp里运行不正常,新的版本,用delphi7.0开发的udp 收发程序在这里下载UDP2程序和代码,新版本的程序可以在winxp里运行,2007年1月)



①在电脑A发udp数据包至单片机N
点击发送键,可以在这边的超级终端看到信息,单片机N仅接受目的端口为1025的UDP。

上面的信息显示收到C0A80001(192.168.0.1)的UDP数据包,信息内容为hello!

②单片机发UDP数据包到电脑A
在超级终端里输入udp 192.168.0.1.4.1.abc回车, 192.168.0.1为IP地址, 4.1也就是端口号为1025端口, abc为要发送的信息。

这时可以看到对方收到单片机N发出的UDP数据包。

③单片机N发UDP数据包到互联网上的电脑C
同样可以将UDP包发到电脑C。这说明单片机N可以收发UDP包,同时可以跨越网关。
网关的作用是实现局域网和互联网,网络地址转换NAT,同时又充当路由的功能,数据包进行转发。



假设网络如下图:

如果需要建立单片机N到单片机P的连接,要怎么做呢?单片机N和单片机P,一个在广州,一个在北京。 我们看到单片机N和P位于不同的地方,一个在广州,一个在北京,这该如何进行呢。
需要在电脑B和电脑C安装NAT转换的软件,一般的防火墙都提供NAT转换功能。假设电脑B和电脑C都安装了防火墙软件进行NAT转换,
设置电脑B的NAT端口2000为到单片机N 192.168.0.7:1024的连接
设置电脑C的NAT端口3000为到单片机P 192.168.0.9:1024的连接,端口4000为到电脑D的连接。

单片机N不能和单片机P直接建立连接。 单片机N连接电脑C 211.101.4.41的端口2000,电脑C将会把该连接转换为到单片机P的端口1024的连接。 这样N发给C端的数据包被转发到单片机P,P发到电脑C的数据被转发到N。这样就建立了单片机N到单片机P之间的TCP连接.
NAT转换实际上是建立了三个TCP/IP连接,
N→←B→←C→←P
分别是N和B、B和C、C和P 同样的道理,N也可以连接到电脑K。
N←→P之间可采用UDP,也可以采用TCP协议,NAT都可支持,更好的NAT还支持FTP、HTTP、SMTP等。这样,我们的数据中心可以设在广州本地,也可以设在互联网上的北京的一台电脑或者是北京一台连接到互联网的机器。
支持NAT转换的软件很多,linux应该是支持的,sygate、wingate等软件也可以,但最专业的NAT转换是防火墙,制造防火墙的公司很多(中国有几十家),防火墙除了能防止黑客攻击之外,还能完成数据加密通讯、流量统计、权限设置等,建议使用防火墙而不要用sygate这些软件(稳定性不够,容易死机,管理也不完善)。Sygate作为个人用还可以。CISCO的某些路由器也支持NAT。
单片机处理UDP的速度比TCP要快,因为UDP相对简单,用户可以选用UDP或TCP来实现连接,而不必同时实现,TCP不能进行一对多的传输,而UDP可以进行一对多的传输。
注意:老古网网站主机的ip地址已经改为211.157.101.197,请按照新ip地址操作,不要使用211.101.4.41.


来源
老古网

欢迎技术探讨和发表评论