6676浏览
查看: 6676|回复: 1

【Raspberry Pi网络编程2+】nc命令

[复制链接]
本帖最后由 iooops 于 2016-3-20 00:31 编辑

nc命令是用于两台机器之间互相通信的命令。


在terminal中输入
  1. man nc
复制代码
得到如下所示manual:
Screen Shot 2016-03-20 at 12.12.40 AM.png
nc(netcat)就是支持TCP/UDP传输协议的一个小工具。

下面是关于nc命令的用法,摘取原文中的3条(原文地址:http://blog.csdn.net/xifeijian/article/details/9348277):

linux nc命令使用详解
功能说明:功能强大的网络工具
语 法:nc [-hlnruz][-g<网关...>][-G<指向器数目>][-i<延迟秒数>][-o<输出文件>][-p<通信端口>][-s<来源位址>][-v...][-w<超时秒数>][主机名称][通信端口...]
参 数:
-l  使用监听模式,管控传入的资料。
-v 详细输出--用两个-v可得到更详细的内容
-w<超时秒数> 设置等待连线的时间。
-z  使用0输入/输出模式,只在扫描通信端口时使用。

nc使用示例

1. 端口扫描
# nc -v -w 2 192.168.2.34 -z 21-24
nc: connect to 192.168.2.34 port 21 (tcp) failed: Connection refused
Connection to 192.168.2.34 22 port [tcp/ssh] succeeded!
nc: connect to 192.168.2.34 port 23 (tcp) failed: Connection refused
nc: connect to 192.168.2.34 port 24 (tcp) failed: Connection refused

2. 192.168.2.33拷贝文件到192.168.2.34
在192.168.2.34上: nc -l 1234 > test.txt
在192.168.2.33上: nc 192.168.2.34 < test.txt

3. 简单聊天工具
在192.168.2.34上: nc -l 1234
在192.168.2.33上: nc 192.168.2.34 1234
这样,双方就可以相互交流了。使用ctrl+C(或D)退出。

楼主使用树莓派的IP地址亲试过这三条,表示很好用。

其实nc这个命令也可以用Python实现,其实现也是基于socket。
以下为源代码(基于http://stackoverflow.com/questions/1908878/netcat-implementation-in-python):
  1. import socket
  2. def netcat(hostname, port, content):
  3.      s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
  4.      s.connect((hostname, port))
  5.      s.sendall(content)
  6.      s.shutdown(socket.SHUT_WR)
  7.         while 1:
  8.                 data = s.recv(1024)
  9.                 if data == "":
  10.                         break
  11.                 print "Received:", repr(data)
  12. print "Connection closed."
  13. s.close()
复制代码

上述代码 - - 楼主其实并没有亲测过……有兴趣的童鞋亲测一下然后告诉我结果?




yoyojacky  初级技匠 来自手机

发表于 2016-3-24 02:42:00

代码缩进
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2022 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail