写久了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 命令示例

Netcat实用操作的更多相关文章

  1. 提高开发效率的 Eclipse 实用操作

    工欲善其事,必先利其器.对于程序员来说,Eclipse便是其中的一个“器”.本文会从Eclipse快捷键和实用技巧这两个篇章展开介绍.Eclipse快捷键用熟后,不用鼠标,便可进行编程开发,避免鼠标分 ...

  2. Chrome 开发者工具实用操作

    Chrome 开发者工具实用操作 https://umaar.com/dev-tips/

  3. KiCAD实用操作

    KiCAD实用操作之一:自动编辑线宽 今天偶然间发现的一个比较实用的功能,算是KiCAD的一个优点吧(或许是在AD上面没发现):当整个PCB布完线或者在布线过程中,我们有可能需要对某个线的宽度进行调整 ...

  4. 能够提高开发效率的Eclipse实用操作

    工欲善其事,必先利其器.对于程序员来说,Eclipse便是其中的一个“器”.本文会从Eclipse快捷键和实用技巧这两个篇章展开介绍.Eclipse快捷键用熟后,不用鼠标,便可进行编程开发,避免鼠标分 ...

  5. 能够提高开发效率的 Eclipse 实用操作

    工欲善其事,必先利其器.对于程序员来说,Eclipse便是其中的一个“器”.本文会从Eclipse快捷键和实用技巧这两个篇章展开介绍.Eclipse快捷键用熟后,不用鼠标,便可进行编程开发,避免鼠标分 ...

  6. VS2019 实用操作

    本文列出了在编写程序过程中的几个非常实用的操作方式,通过这些操作方式,可以在一定程度上减少重复操作.提高编码效率.改善编程体验. 列模式操作 列操作是一项很常用且实用的功能,可以一次性修改不同的行. ...

  7. Myeclipse学习总结(8)——Eclipse实用操作

    工欲善其事,必先利其器.对于程序员来说,Eclipse便是其中的一个"器".本文会从Eclipse快捷键和实用技巧这两个篇章展开介绍.Eclipse快捷键用熟后,不用鼠标,便可进行 ...

  8. 开发工具IDE从入门到爱不释手(五)更多实用操作

    更多实用技巧 Tabs分屏和独立 日志链接及浏览器 设置浏览器 本地修改历史 三秒钟不操作,自动保存一个版本 右键--Local History--Show History 查看方法调用情况 按住方法 ...

  9. Excel实用操作

    目地 不能熟练操作Excel的程序员不是好策划. 一片区域填充相同数据 1.用鼠标框选一片区域,松开鼠标,不要点其它单元格 2.直接输入输入数据,输完之后,按Ctrl+Enter,选中的区域就会填充相 ...

随机推荐

  1. 安装 Kivy

    Kivy 是基于Python编程语言的一种用于开发跨平台GUI客户端程序的框架.可以打包成iOS.Android.Windows.OSX等多种平台.目前已经实现一次编码,到处运行的目的. Kivy框架 ...

  2. Spring Boot web API接口设计之token、timestamp、sign

    版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/vbirdbest/article/details/80789817一:token 简介Token:访 ...

  3. dbms_redefinition方式普通表改造分区表

    --创建一张普通表t_wjq1SEIANG@seiang11g>create table t_wjq1 as select object_id,object_name,created from ...

  4. Clickhouse副本表以及分布式表简单实践

    集群配置: 192.168.0.106 node3 192.168.0.101 node2 192.168.0.103 node1 zookeeper配置忽略,自行实践! node1配置: <? ...

  5. 【转】联普多WAN口路由器是否可以设置叠加带宽

    TP-link联普是全球领先的通讯供应厂商之一,那么你是否知道联普多WAN口路由器可以设置叠加带宽吗?下面是学习啦小编整理的一些关于联普多WAN口路由器是否可以设置叠加带宽的相关资料,供你参考. 联普 ...

  6. 5-servlet简介

    一.servlet1.是什么:java程序来处理页面请求和响应2.实现方式: a.实现Servlet接口 b.继承HttpServlet类 3.步骤: a.创建一个java程序实现Servlet或者继 ...

  7. 七、Oracle 数据库设计

    1. 原始单据与实体之间的关系 可以是一对一.一对多.多对多的关系.在一般情况下,它们是一对一的关系:即一张原始单据对应且只对应一个实体. 在特殊情况下,它们可能是一对多或多对一的关系,即一张原始单证 ...

  8. vue 2.0多页面开发

    1.为项目添加多个入口 找到\build\webpack.base.conf.js文件: module.exports = { //..., //vue的多页面开发:应用程序可以存在多个入口 entr ...

  9. CSS选择器之基本选择器总结

    一.元素选择器(所有浏览器支持) 元素选择器(标签名选择器)其实就是文档的元素,如html,body,p,div等等, 下面例子中选择了span元素,并设置了字体颜色为红色. <body> ...

  10. 下面哪项技术可以用在WEB开发中实现会话跟踪实现?

    下面哪项技术可以用在WEB开发中实现会话跟踪实现? A:session B:Cookie C:地址重写 D:隐藏域 答案:ABCD 会话跟踪是一种灵活.轻便的机制,它使Web上的状态编程变为可能. H ...