也可以使用
svn checkout http://tcpudptool.googlecode.com/svn/trunk/
co出源码,当然你也可以访问这个googlecode主页。
此tcpudp_tool项目始于8月14日。起初只是为他人讲解LINUX下的SOCKET编程而作,后越写越兴奋,恍然至今十余日已过,今朝程序TCP服务端与客户端联调成功,蹂躏多时尚无错误,我方怠然。然而经半日深思熟虑,我决定开源布之于公,非傲而炫之,实乃愿集思而广益,期冀此程序臻于至善。
程序功能类似于Windows平台下的“网络调试助手”,可建立TCP服务器端和客户端。接收和发送的数据可以以16进制显示,也可以以ASCII显示。相比较“网络调试助手”,本程序的优点是完全基于linux的term终端,即是纯命令行操作。目前支持x86和arm两个平台,支持Windows平台下的串口工具类(SCRT,超级终端等),所以特别有利于嵌入式TCP/IP调试。
目前,此程序可以作为一个基础,继续开发可作为聊天工具,远程控制等等特别适合于嵌入式系统的工具。
程序功能简述,于下图中可略窥一二。
下述所有图中紫色背景的term是本人的一台电脑,IP为10.16.51.2;白色背景term为本人的另一台电脑,IP为10.16.51.9;在这次实验中,.2运行TCP服务器,而.9运行TCP客户端。


图组1 说明:这些是开始界面以及菜单选择画面,开始菜单提供了倒计时功能(注意菜单项下面的这一句话”AutoRun will begin inner X sec”紫色的倒计时X为2秒,白色的X为4秒),用户没有输入值会自动选择默认值。
紫色背景选择了[1]建立一个TCP服务器,服务器要求用户输入一些参数。在规定时间内无输入会自动采用默认值,这个方法适用于无人值守。更多内容请参阅开发者文档。
白色背景选择了[2]建立一个TCP客户端,客户端也要求用户输入一些参数,在这里没有预设定默认值,也没有进行时间设定,所以会无限等待,直到用户输入为止。
随后,程序会对应地显示如下


图组2 说明:这一组图说明了窗口的组织形式,两者之间以分割线来分界。分割线之上为接收窗口(会有提示语句,This is the Rx Window displaying ingress data),之下为发送窗口(会有提示语句,This is the Tx Window. Please Enter egress data)。
紫色背景是服务器端的接收窗口和发送窗口。二者之间以两行“菱形分割线”分开。白色背景是客户端的接收窗口和发送窗口,二者之间是以两行“十字分割线”。从中可以看出2者之间的交互过程。
在这里需要注意的是,发送窗口有2种输入模式:1)如果是以0x开头的字符串,tcpudptool会将其随后字符串的作为16进制来读取,每个字符被读取并认为是4个bit,每2个字符代表一个byte,以此格式输出;在此模式下,程序提供了自动除去空格功能,可以随用户随意输入。2)如果不是以0x开头的字符串或是只有0x两个字符,则程序认为其为ASCII码流,直接输出。以上两种模式都是本人设计算法实现,经过多次测试,但仍希望用户使用并回报bug。
接收窗口是显示如下内容,如果有客户端connect接入,则会显示对方的IP和所使用端口。如果有数据被接收进来,则会显示其长度,并会以16进制和ASCII格式显示。每行显示16个Byte。
关于此组图的更多内容,请参考开发者文档。
如果想退出程序,现今只有Ctrl + c或关闭终端来执行。
程序现在只是搭建了一个框架,有很多很多很多待补足之处:
1) 程序的UDP两个菜单命令尚未实现;
2) 程序初始运行的参数;
3) 程序正常退出的方式;
4) 程序对接受与发送数据的记录;
5) 程序目前只有单对单方式,是否有必要单对多,尚须调研,以及实现方法;
6) 程序对控制协议的支持。
若有哪位同学对此有兴趣,可以与我联系。
关于本程序的开发者文档,我会在我的博客中逐渐发布,可以访问http://augustseu-blog.appspot.com