今天在项目中,需要往socket接口里发送一个c++里的"31"整数(4个字节),测试了使用telnet好像搞不定,最终谷歌后使用nc来实现。
--原因是当前socket接口里的c++实现原理是:先获取一个整数长度,然后再获取这个整数长度的字符串。
echo -e '\x1f\x00\x00\x00' | nc 127.0.0.1 44698
当然python也可使用,代码搞定:
send_msg = struct.pack("i%", len(msg_info))
c = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
NetCat,在网络工具中有“瑞士军刀”美誉,其有Windows和Linux的版本。因为它短小精悍(1.84版本也不过25k,旧版本或缩减版甚至更小)、功能实用,被设计为一个简单、可靠的网络工具,可通过TCP或UDP协议传输读写数据。同时,它还是一个网络应用Debug分析器,因为它可以根据需要创建各种不同类型的网络连接。
通常的Linux发行版中都带有NetCat(简称nc),但不同的版本,其参数的使用略有差异。
多看了下nc,除了测试往socket接口里写数据,还有如下功能:
1.远程拷贝文件,目录
2.克隆硬盘或分区
3.端口扫描
4.聊天 --启动socket监听,发送& 监听
更多详细内容,请参考: