一、Windows下的网络调试工具-NetAssist
由于在Windows下经常使用NetAssist.exe这款网络调试工具进行TCP、UDP的服务端、客户端的监听,对于需要编写各种通信协议的TCP服务端、客户端以及UDP通信程序来说是很方便的。
NetAssist
的下载地址为:NetAssist.exe
下载之后无需安装即可使用,是一款绿色软件,其软件界面如下图所示:
从
NetAssist.exe
工具的协议类型下拉菜单可以看出,协议类型有TCP Server、TCP Client、UDP三种类型
1、TCP服务端和客户端测试
如下图所示:
1.开启TCP服务端
首先打开NetAssist.exe
工具,协议类型选择TCP Server
,本地主机端口填写1-65535本地未被占用的端口进行服务端监听,比如下图所示的9999端口,再点击左侧的【打开】按钮开始监听。
2.打开TCP客户端,连接刚才的TCP服务端
然后再重新打开另外一个NetAssist.exe
进程,在网络设置选项卡中的(1)协议类型选择TCP Client
,(2)远程主机地址填写本地的127.0.0.1
,如果需要连接的是其他远程主机IP地址,则对应更改就行。(3)远程主机端口填写9999,最后点击左侧的【连接】按钮连接。
3.TCP服务端和客户端-互相收发数据测试
TCP客户端连接到TCP服务端后,可以进行双向收发数据,如下图所示:
接收和发送可以选择ASCII
和HEX
即16进制这两种方式
2、UDP服务端和客户端测试
如下图所示,两个UDP通信双方的协议类型均选择UDP
,由于UDP是无连接的协议,通信双方是对等的,与TCP不同的是不存在严格意义上的服务端和客户端。
选择自己的UDP端口并打开后在软件中下部分的远程主机中填写对方的UDP通信IP和端口,为了方便我直接使用自己本机的IP127.0.0.1
进行测试,只要保证网络是通的,外网和局域网内都是可以的。
二、Linux下的网络调试命令工具-nc
最近公司部署了一些CentOS的服务器,有个同事问我Linux下有没有什么工具能够像Windows下的网络调试助手NetAssist
一样可以启动TCP服务端端口监听TCP客户端的连接,我想到了Linux下的nc
软件包,使用起来还是蛮方便的。
1、什么是nc
nc是netcat的简写,有着网络界的瑞士军刀美誉。因为它短小精悍、功能实用,被设计为一个简单、可靠的网络工具
2、nc的作用
(1)实现任意TCP/UDP端口的侦听,nc可以作为server以TCP或UDP方式侦听指定端口
(2)端口的扫描,nc可以作为client发起TCP或UDP连接
(3)机器之间传输文件
(4)机器之间网络测速
3、在CentOS7中安装nc
命令工具
默认情况下在CentOS7
下是没有安装nc
这个软件工具的,需要使用yum install nc
命令安装,安装之后使用nc -h
或者nc --help
命令即可查看其具体用法,如下图所示:
nc的控制参数不少,常用的几个参数如下所列:
- -l
用于指定nc将处于侦听模式。指定该参数,则意味着nc被当作server,侦听并接受连接,而非向其它地址发起连接。 - -p <port>
暂未用到(老版本的nc可能需要在端口号前加-p参数,下面测试环境是centos6.6,nc版本是nc-1.84,未用到-p参数) - -s
指定发送数据的源IP地址,适用于多网卡机 - -u
指定nc使用UDP协议,默认为TCP - -v
输出交互或出错信息,新手调试时尤为有用
6)-w
超时秒数,后面跟数字
7)-z
表示zero,表示扫描时不发送任何数据
如果想要更详细的查看nc
命令的使用,可以使用man nc
查看。
4、NetCat 官方地址:http://netcat.sourceforge.net/,如下图所示:
关于
nc
命令的使用,可以参考博客园上的这两篇文章:
三、Windows下使用NetAssist.exe
和Linux下nc
进行网络通信测试
1、在CentOS7下使用nc -l -p 11011
命令启动一个TCP服务端,并指定监听的端口号比如11011,我使用的是自己购买的CentOS7腾讯云主机进行测试,如下图所示:
2、在Windows下打开
NetAssist.exe
网络调试工具,选择TCP Client
打开一个TCP客户端,并且填写TCP服务端的IP地址,比如我的腾讯云主机的IP地址为:111.229.122.21,端口为11011,然后点击【连接】按钮3、收发测试