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

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

二 TCP测试

  我们测试TCP的连接。
   ① 电脑A连接到单片机N
在电脑B的里运行命令telnet 192.168.0.7 1024回车。1024为单片机N的TCP端口,仅接受1024端口的连接。这时我们可以看到telnet通过TCP连接到单片机N
,在telnet的窗口里输入abc,字母通过以太网送到单片机N的串口,并从超级终端里显示出来,


同样在超级终端里输入字母hello,也可以在电脑里的telnet窗口显示出来。


这验证了TCP的连接。
  ②单片机N连接到电脑A
这时需要在电脑A里进行一个叫chat.exe的程序
(我编写的,用Delphi5.0开发的,程序及源代码在此下载。) chat.exe程序监听1024端口的连接。 在超级终端里输入telnet 192.168.0.1.4.0回车。192.168.0.1为对方IP地址;4.0为端口;使用点分法表示,1024转换成16进制为0x0400,第一个字节为4,第二个字节为0,4.0就是端口号1024(这里为了编程简单)。

超级终端显示connected.



同样TCP demo(chat.exe)程序也显示连接到192.168.0.7
在超级终端输入abcedefg,可以看到被送到tcp demo的下半窗口,从TCP demo的上半窗口输入hello,也被送到超级终端窗口。这说明两者确实连接并正确传输数据。
如果我们需要断开tcp连接,可以选择 TCP demo菜单的file->disconnect.电脑A将主动断开连接

也可以在超级终端里连续输入20个小写字母c来结束连接,这时是单片机主动断开连接。单片机检测到输入连续的20个字母c就会主动断开连接。用户可以修改程序,采用别的办法。

可以看到屏幕显示disconnect

③单片机N连接到单片机M
同样在超级终端里输入telnet 192.168.0.8.4.0可以看到连接到单片机M。也就是两个单片机控制的开发板直接也是可以进行tcp/ip连接的。连接之后可以互相传数据。

③单片机N连接到互联网上的电脑C
在超级终端里输入telnet 211.101.4.41.0.21,IP地址为211.101.4.41,连接对方的TCP端口21,这时可以看到已连接,并有数据送到超级终端。

在超级终端里输入help回车可以看到更多信息,
输入quit回车,对方将断开连接。
这表示单片机可以发起到互联网上主机的连接,也验证了跨越网关的能力。
(5)、验证UDP功能。 我们在电脑B里运行udp.exe程序(我编写的UDP的收发程序,用Delphi5.0开发的,程序及源代码在此下载。) ①在电脑B发udp数据包至单片机N 点击发送键,可以在这边的超级终端看到信息,单片机N仅接受目的端口为1025的UDP。 ②单片机发UDP数据包到电脑B 在超级终端里输入udp192.168.0.3.4.1.abc回车, 192.168.0.3为IP地址, 4.1也就是端口号为1025端口, abc为要发送的信息。这时可以看到对方收到单片机N发出的UDP数据包。 ③单片机N发UDP数据包到互联网上的电脑C。同样可以将UDP包发到电脑C。这说明单片机N可以收发UDP包,同时可以跨越网关。 网关的作用是实现局域网和互联网,网络地址转换NAT,同时又充当路由的功能,数据包进行转发。 假设网络如下图: 如果需要建立单片机N到单片机P的连接,或建立单片机N到电脑K的连接。 我们看到单片机N和P位于不同的地方,一个在广州,一个在北京,这该如何进行呢。需要在电脑B和电脑G安装NAT转换的软件,一般的防火墙都提供NAT转换功能。假设电脑B和电脑G都安装了防火墙软件进行NAT转换,设置电脑B的NAT端口3000为到192.168.0.7的连接,端口4000为到电脑K的连接。 单片机N不能和单片机P直接建立连接。 单片机N连接211.101.4.41的端口2000也就是telnet211.1011.41.2000,电脑将会把该连接转换为到单片机P的端口1024的连接。 这样N发给G端的数据包被转发到单片机P,P发到电脑G的数据被转发到N。 NAT转换实际上是建立了三个TCP/IP连接, N→←B→←G→←P 分别是N和B、B和G、G和P 同样的道理,N也可以连接到电脑K。N←→P之间可采用UDP,也可以采用TCP协议,NAT都可支持,更好的NAT还支持FTP、HTTP、SMTP等。这样,我们的数据中心可以设在广州本地,也可以设在互联网上的北京一台电脑或者是北京一台连接到互联网的机器。 支持NAT转换的软件很多,UNIX应该是支持的,sygate、wingate等软件也可以,但最专业的NAT转换是防火墙,制造防火墙的公司很多(中国有几十家),防火墙除了能防止黑客攻击之外,还能完成数据加密通讯、流量统计、权限设置等,建议使用防火墙而不要用sygate这些软件(稳定性不够,容易死机,管理也不完善)。Sygate作为个人用还可以。CISCO的某些路由器也支持NAT。 单片机处理UDP的速度比TCP要快,因为UDP相对简单,用户可以选用UDP或TCP来实现连接,而不必同时实现,TCP不能进行一对多的传输,而UDP可以进行一对多的传输。
注意:老古网网站主机的ip地址已经改为211.157.101.197,请按照新ip地址操作,不要使用211.101.4.41.


来源
老古网

欢迎技术探讨和发表评论