写久了web倦了,第n次开始尝试网络开发,于是熟悉一下常用工具。

尝试了一下netcat来测试服务器,或者充当客户端都异常好用。于是记录一下常用的一下命令

1. 充当服务器,或者客户端进行访问

通过nc建立一台服务器用于监听端口:

nc -l 9999

此时nc处于了监听状态, 我们可以开启一台客户端来访问对应接口

nc 127.0.0.1 9999

然后现在客户端向服务器发起了链接,尝试在链接中的客户端随便输入一些信息

Hello World...

可以在服务器端看到,服务器会直接输出这些信息到控制台。

2. 传输文件

首先要确保你和目标地址能够建立起连接,比如是在同一个局域网内,或者可以ip地址直接访问的云主机之类

在服务器端,我们开启一个服务器对一个端口进行监听,并且将输出的信息重定向到一个目标文件

nc -l 9999 > target_file

然后客户端找到要传输的文件

cat source_file | nc localhost 9999

传输完成之后,就可以看到服务器自动停止了。然后去找下目标文件 就已经在那里了,这个方法在局域网内传文件太方便啦。

3. 客户端超时控制

客户端超时控制 是增加一个-w选项例:

nc -w 10 localhost 9999

这里注意,在10秒内没有任何操作就会被自动断开,但是在10秒内你做了任何操作,都可以再续10秒。

4. 强制netcat服务器端保持启动状态:

如果跟着做了上面实验的话就会发现一个问题,当客户端推出之后,服务器端也会立即跟着退出。除了那个文件传输的例子以外我们不希望任何一个服务器会在客户端退出之后就立即结束服务,所以我们需要让服务器一直保持服务。

nc -k -l 9999

5. 使用netcat处理udp

Netcat在使用-l启动服务器或者发起客户端连接的时候默认使用了tcp协议,但是使用-u参数可以让他使用udp来发起连接

nc -u -l 9999  //使用udp来启动服务器

nc -u localhost 9999  //使用udp来访问服务器

另外在早些时候的版本,或者某个rewrite版本里面还有一个-e参数,用于将访问重定向到某个目标机器的应用,这么邪恶的东西我man 了一下我的nc没有发现。可能需要另外开坑的时候去玩玩看。目前来看测试服务器的话上面的功能就够用了,访问具体url的时候 还可以借助curl来玩。linux世界的工具真是强大啊。!

Reference:

https://www.oschina.net/question/12_50469?sort=default&p=3  8 个实用的 Linux netcat 命令示例

最新文章

  1. (三)Spark-Hadoop集群搭建-Java&Python版Spark
  2. 【emWin】例程二:显示“hello,world”
  3. Netsuite Formula > Oracle函数列表速查(PL/SQL单行函数和组函数详解).txt
  4. 【好书摘要】性能优化中CPU、内存、磁盘IO、网络性能的依赖
  5. spring服务定位器类
  6. 【转】eclipse导入V7包出现错误解决办法
  7. Unity3d 怪物死亡燃烧掉效果
  8. linux笔记七---------管道
  9. Nodejs新建博客练习(二)添加flash支持
  10. Centos下如何修改Mysql的root密码
  11. [四]JFreeChart实践三之饼图
  12. 演示:纯CSS实现自适应布局表格
  13. js 数组的常用方法
  14. [论文阅读] Deep Residual Learning for Image Recognition(ResNet)
  15. Chapter 2 User Authentication, Authorization, and Security(2):创建登录帐号
  16. 902. Kth Smallest Element in a BST
  17. 转----ui输入测试数据
  18. 在Qt中调用Mupdf库进行pdf显示
  19. python自学第8天,变量,递归
  20. 使用git push命令如何忽略不想提交的文件夹或者文件

热门文章

  1. [python] 解决pip install download速度过慢问题 更换豆瓣源
  2. [JXOI2018]游戏
  3. CPU, PSU, SPU - Oracle Critical Patch Update Terminology Update
  4. 通过 PHP,可以把文件上传到服务器。
  5. Python:Day42 Position
  6. Python:Day44 Javascript
  7. 009_npm常用命令参数总结
  8. Intel发6款全新9代i9/i7/i5 CPU:巅峰8核
  9. 深入理解Proxy 及 使用Proxy实现vue数据双向绑定
  10. 用 Django 管理现有数据库