精华内容
下载资源
问答
  • 文章目录需求python模拟apache服务 需求 有内外网环境,内网端口需要映射到外网,才能通过外网访问 想随便先在内网起一个...查看22716端口,结果什么也没有运行,也没有被监听 [root@knl091 ~]# netstat -antp | gre

    需求

    有内外网环境,内网端口需要映射到外网,才能通过外网访问
    想随便先在内网起一个服务,又不想额外上传什么应用

    这个时候,就可以使用python自带的一个指令来满足需求了。

    python模拟apache服务

    Linux一般都会自带python

    [root@knl091 ~]# python --version
    Python 2.7.5
    

    查看22716端口,结果什么也没有运行,也没有被监听

    [root@knl091 ~]# netstat -antp | grep 22716
    [root@knl091 ~]#
    

    如果没有安装netstat,可以使用ss -lp指令

    [root@knl096 ~]# ss -lp | grep 22716
    [root@knl096 ~]# 
    

    使用如下指令,让22716端口起一个httpserver服务
    使用ctrl+C中止服务

    [root@knl091 ~]# python -m SimpleHTTPServer 22716
    Serving HTTP on 0.0.0.0 port 22716 ...
    

    再次查看

    [root@knl091 ~]# netstat -antp | grep 22716
    tcp        0      0 0.0.0.0:22716           0.0.0.0:*               LISTEN      98262/python
    
    [root@knl096 ~]# ss -lp | grep 22716
    tcp    LISTEN     0      5       *:22716                 *:*                     users:(("python",pid=39075,fd=3))
    
    展开全文
  • 绑定地址信息(不推荐,因为系统会帮你绑定,这样能预防端口冲突) 向客户端发送连接请求 发送/接收数据 关闭套接字 服务端 创建套接字 绑定地址信息(客户端必须自己绑定,系统不会帮你) 将套接字设为监听状。此状态...

    TCP套接字编程步骤

    客户端

    1. 创建套接字
    2. 绑定地址信息(不推荐,因为系统会帮你绑定,这样能预防端口冲突)
    3. 向客户端发送连接请求
    4. 发送/接收数据
    5. 关闭套接字

    服务端

    1. 创建套接字
    2. 绑定地址信息(客户端必须自己绑定,系统不会帮你)
    3. 将套接字设为监听状。此状态下一旦接收到连接请求,就会创建一个新的 socket 并放入未完成连接队列里面去,等到连接建立完成,就会将它再次转到已完成连接队列里去。(若未完成连接队列已满则新的连接请求会被丢弃,直到腾出空间才再次建立连接)
    4. 获取新连接。从已完成连接队列中取出一个套接字,并返回其操作句柄。(新 socket 中拥有源端的地址信息)
    5. 接收/发送数据
    6. 关闭套接字

    注意点:

    1. 监听套接字只负责进行建立连接,而不负责进行通信
    2. 新建套接字负责进行通信
    3. 客户端需要使用多进程或者多线程,因为同一时间可能有多个客户端建立连接(建议使用多进程,因为稳定性和健壮性强)
    4. 多进程中父进程需要注意子进程的退出状态,避免出现僵尸进程
      图示流程
      在这里插入图片描述
      函数接口介绍
    1. 创建套接字
    
    int socket(int domain, int type, int protocol);
    参数:
    domain: 地址域,不同的协议版本有着不同的地址结构
    		常用的有 AF_INET(ipv4) AF_INET6(ipv6)
    type: 套接字类型  tcp(流式套接字) SOCK_STREAM    udp(数据报套接字)SOCK_DGRAM
    protocol: 传输协议, tcp(IPPROTO_TCP)  udp(IPPROTO_UDP)
    返回值: 成  套接字的操作句柄    败    -1
    
    2. 为套接字绑定地址信息(绑定自己的)
    
       客户端不推荐,因为系统会帮助绑定,这样可以避免端口冲突,服务端必须自己绑定
        int bind(int sockfd, struct sockaddr *my_addr, socklen_t addrlen);
        参数:
        sockfd:  套接字的操作句柄
        my_addr: 要绑定的地址信息,这是一个结构体,需要用地址信息给结构体的每一个变量赋值(因为不同的地址结构开头都是一致的,为了避免出错,这里需要进行结构体强转)
        addrlen: 要绑定的地址信息的长度,也就是my_addr这个结构体的长度
    返回值: 成 0-1
    
    3. 客户端向服务端发起连接请求
    
    int connect(int sockfd,const struct sockaddr *srv_addr,socklen_t addrlen);
    参数:
      sockfd     系统调用的套接字描述符,即由socket函数返回的套接字描述符  
      srv_addr   目的套接字的地址,该套接字地址结构必须包含目的IP地址和目的端口号,即想与之通信的服务器地址  
      addrlen     目的套接字地址的大小
    返回值:若成功则为0,若出错则为-1
    
    4. 客户端进入监听状态
    
    int listen(int sockfd, int backlog);
    参数:
        sockfd    套接字的操作句柄
        backlog   同一时间的并发连接数,决定同一时间最多接收多少个连接请求
    返回值:若成功则返回0,若出错则返回-15.获取新连接(从已完成队列中去一个socket,并返回其操作句柄)
    
    int accept(int sockfd, struct sockaddr *cliaddr, socklen_t *addrlen);
    参数:
    	cliaddr 和 addrlen 用来返回已连接的对端(客户端)的协议地址;  
     	该函数返回套接字描述符,该描述符连接到调用connect函数的客户端.  
     	 这个新的套接字描述符和原始的套接字描述符sockfd具有相同的套接字类型和地址族,而传给accept函数的套接字描述符sockfd没有关联到这个链接,而是继续保持可用状态并接受其他连接请求.若不关心客户端协议地址,可将cliaddr和addrlen参数设置为NULL,否则,在调用accept之前,应将参数cliaddr设为足够大的缓冲区来存放地址,并且将addrlen设为指向代表这个缓冲区大小的整数指针.accept函数返回时,会在缓冲区填充客户端的地址并更新addrlen所指向的整数为该地址的实际大小.若没有连接请求等待处理,accept会阻塞直到一个请求到来.
    返回值:若成功返回套接字描述符,出错返回-16.接收/发送数据
    
    ssize_t recv(int sockfd, char *buf, size_t len, int flags);
    ssize_t send(int sockfd, char *data, size_t len, int flags);
    参数:
       	buf/data 是要接收/发送数据的首地址
       	flag    0   默认表阻塞
       	len     接收/发送数据的长度
    返回值:  成  实际收/发的长度  0  表示一端断开连接  -1  失败
    
    7.关闭套接字
    
    int close(int sockfd)
       	
    

    代码演示

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    展开全文
  • windows 安装 netcat 命令,来模拟端口监听数据。使用的过程中与在 :Linux 系统上不一致,比如下面这样: nc -lk 9999 在 Linux 上是不报错的。但是在 windows 上就会报错。需要改成下面这样: nc -l -p 9999 ...
        

    windows 安装 netcat 命令,来模拟端口监听数据。使用的过程中与在 :Linux 系统上不一致,比如下面这样:

    nc -lk 9999

    在 Linux 上是不报错的。但是在 windows 上就会报错。需要改成下面这样:

    nc -l -p 9999

    展开全文
  • linux命令:每日一条

    2019-02-22 14:00:27
    1、netstat -lntp #查看监听端口监听状态可以理解为端口是否激活,可用状态 2、curl -i -X POST url #在Linux系统下可以用curl和wget命令来模拟Http的请求 #我们可以使用 cURL 来完成这一 POST 请求,-d 用于...

    linux命令

    1、netstat -lntp    #查看监听的端口,监听状态可以理解为端口是否激活,可用状态

    2、curl -i -X POST url         #在Linux系统下可以用curl和wget命令来模拟Http的请求

         #我们可以使用 cURL 来完成这一 POST 请求,-d 用于指定发送的数据,-X 用于指定发送数据的方式
        curl -d “userName=tom&passwd=123456” -X POST http://www.example.com/login

    3、ping url    #是否能访问url

    4、cd  /dir     #进入目录dir

    5、ll ,ls       #查看目录下有什么文件

    6、ps -ef|grep java|grep -v grep       #查找java进程

    7、kill -9  [进程号]          #杀进程

    8、nohup java -jar [项目包] &      #启动项目

    9、tail -f nohup.out     #查看启动日志

    10、top                   #查看cpu占比

     

    2019/02/22

    vi命令:查看编辑文件

    详情:http://www.runoob.com/linux/linux-vim.html

     

    2019/02/25

    yum命令:下载安装文件

    yum [options] [command] [package ...]
    • options:可选,选项包括-h(帮助),-y(当安装过程提示选择全部为"yes"),-q(不显示安装的过程)等等。
    • command:要进行的操作。
    • package操作的对象。

    详情:http://www.runoob.com/linux/linux-yum.html

     

    2019/02/26

    ping命令:检测远端主机的网络功能,回应正常,那么远端主机正常

    ping [options] [ip或域名]

    详情:http://www.runoob.com/linux/linux-comm-ping.html

     

    2019/02/28

    查看程序是否运行

    ps -ef|grep [java or tomcat]

    终止进程

    kill -9 [进程号]

    查看文件,包含隐藏文件

    ls -al

    当前目录

    pwd

     

    2019/03/01

    复制文件

    cp  sourcefile destfile

    复制文件夹,递归复制

    cp -r sourcefolder destfolder

    远程安全复制文件(目标在远程地址)

    scp sourcefile username@ip:destfile

    远程安全复制文件夹

    scp -r sourcefolder username@ip:destfolder

    注意:目的地在本地时,以上格式互换一下位置

     

    2019/03/04

    创建目录

    mkdir folder

    删除目录, folder为空文件夹

    rmdir folder

    递归删除目录中所有内容,-rf迭代删除目录及文件

    rm -rf folder

    重命名文件,或目录

    mv aaa ddd

    移动目录

    mv sourcefiledir targetfiledir

     

    2019/03/05

    修改文件权限,使文件具有读写操作权限

    chomd 777 file.txt

     

    2019/03/06

    压缩文件

    tar -czf log.tar.gz

    列出压缩文件内的文件

    tar -tzf log.tar.gz

    解压文件

    tar -xzvf log.tar.gz

     

    2019/03/07

    文件头部前10行内容

    head -n 10 file.log

    文件尾部后10行内容

    tail -n 10 file.log

    查看刷新状态的文件

    tail -f file.log

     

    2019/03/08

    查看端口占用情况(查看8080端口占用情况)

    netstat -tln | grep 8080

    lsop -i :8080

    查看进程

    ps aux | grep java

    查看所有进程

    ps aux

     

    2019/03/11

    下载文件

    wget url

    访问url

    curl url

    检测网络

    ping url

     

    2019/03/20

    创建软链接

    ln -s sourcefile targetfile

    查找文件或目录(在dir目录下或子目录下,以名字"*.c"匹配查找)

    find  dir -name  "*.c"

    查看磁盘使用情况(-h选项,通过它可以产生可读的格式df命令的输出)

    df -h 

     

    2019/03/21

    linux中符号的含义

    .       

    一个点代表当前目录,两个点代表上级目录

    /     

    可以代表根目录,或者除法符号

    |     

     pipeline 是 UNIX 系统,基础且重要的观念。连结上个指令的标准输出,做为下个指令的标准输入。
    who | wc -l   善用这个观念,对精简 script 有相当的帮助。

     

     

     

    展开全文
  • Netcat(简写nc)是一个强大的网络命令工具,能够在linux中执行与TCP、UDP相关的操作,例如端口扫描,端口重定向、端口监听甚至远程连接。 在这里,我们使用 nc 来模拟一台接收message的服务器,和一台发送message的...
  • socket连接测试工具,window和linux

    千次阅读 2019-07-30 17:36:31
    一、windows socketTool SocketTool工具(模拟开发板)和基于socket的java服务器(TCP/IP协议)开发 二、linux ...server.bind(('localhost',6971)) #绑定要监听地址和端口 如果是监听所有 server.liste...
  • 基于linux下的局域网聊天

    千次阅读 2017-10-26 20:09:39
    本项目是在linux环境下,利用网络编程,多线程等模拟出来的聊天程序,只要有客户端请求连接,就建立线程向服务器发送消息。服务器的监听到客户的消息便给其做出对应处理。 本项目主要由服务器端和客户端组成。各自...
  • 作业2 Linux网络编程

    2017-12-08 21:28:01
    采用多进程的方式实现服务器对多个客户端连接请求的响应,主程序创建套接字后将其绑定到4507端口,然后使套接字处于监听状态,调用accept等待来自客户端的连接请求,收到请求后服务器端创建一个子进程,处理该请求。...
  • 主备搭建 模拟主库宕机,手动切换 硬件准备 两台 Centos7.2 linux 服务器。 主库信息:IP 10.211.55.14 实例 DM01 数据库文件存放路径:/home/dmdba/dmdbms/ MAL系统监听TCP连接的端口 62141 实例对应的守护进程监听...
  • 服务器与客户端连接,客户端异常断掉之后服务器端口仍然被占用, 到最后是不是服务器端达到最大连接数就没法连接了?领导让我测试这种情况,我用自己的电脑当TCP Client,虚拟机当服务器,...2:用服务器端监听端口...
  • Linux系统分析part2

    2008-10-29 14:56:33
    16.4.4 监听INET BSD 套接口 142 16.4.5 接收连接请求 143 16.5 IP 层 143 16.5.1 套接口缓冲区 143 16.5.2 接收IP数据包 144 16.5.3 发送IP数据包 144 16.5.4 数据碎片 144 16.6 地址解析协议 145 第17章 系统内核...
  • Linux系统分析part1

    2008-10-29 14:20:24
    16.4.4 监听INET BSD 套接口 142 16.4.5 接收连接请求 143 16.5 IP 层 143 16.5.1 套接口缓冲区 143 16.5.2 接收IP数据包 144 16.5.3 发送IP数据包 144 16.5.4 数据碎片 144 16.6 地址解析协议 145 第17章 系统内核...
  • 第二十二章 Linux I/O端口编程 22.1 如何在C语言下使用I/O端口 22.1.1 一般的方法 22.1.2 另一个替代方法:/dev/prot 22.2 硬件中断与DMA存取 22.3 高精确的时间 22.3.1 延迟时间 22.3.2 时间的测量 22.4 使用其他...
  • 主程序创建套接字后将套接字和自主选定的端口进行绑定。 使套接字处于监听状态,调用accept函数等待来自客户端的连接请求。 每接受一个新的客户端连接请求,服务器端进程就创建一个子进程,在子进程中处理该连接...
  • TFTP (普通文件传输协议或一般文件传输协议) 大家一定记得在2003年8月12日全球爆发冲击波(Worm.Blaster)病毒,这种病毒会监听端口69,模拟出一个TFTP服务器,并启动一个攻击传播线程,不断地随机生成攻击地址,进行...
  • 16.4.4 监听INET BSD 套接口 142 16.4.5 接收连接请求 143 16.5 IP 层 143 16.5.1 套接口缓冲区 143 16.5.2 接收IP数据包 144 16.5.3 发送IP数据包 144 16.5.4 数据碎片 144 16.6 地址解析协议 145 第17章 系统内核...
  • TFTP (普通文件传输协议或一般文件传输协议) 大家一定记得在2003年8月12日全球爆发冲击波(Worm.Blaster)病毒,这种病毒会监听端口69,模拟出一个TFTP服务器,并启动一个***传播线程,不断地随机生成***地址,进行***...
  • 16.4.4 监听INET BSD 套接口 142 16.4.5 接收连接请求 143 16.5 IP 层 143 16.5.1 套接口缓冲区 143 16.5.2 接收IP数据包 144 16.5.3 发送IP数据包 144 16.5.4 数据碎片 144 16.6 地址解析协议 145 第17章 系统内核...
  • 本书介绍Linux环境下的编程方法,内容包括Linux系统命令、 Shell脚本、编程语言(gawk、Perl)、系统内核、安全体系、X Window等,内容丰富、论述全面,涵盖了Linux系统的方方面面。 目 录 前言 第一篇 Linux系统介绍 ...
  • 入门学习Linux常用必会60个命令实例详解doc/txt

    千次下载 热门讨论 2011-06-09 00:08:45
    它会使mount不执行实际挂上的动作,而是模拟整个挂上的过程,通常会和-v一起使用。 -t vfstype:显示被加载文件系统的类型。 -n:一般而言,mount挂上后会在/etc/mtab中写入一笔资料,在系统中没有可写入文件...

空空如也

空空如也

1 2 3 4
收藏数 61
精华内容 24
关键字:

linux模拟端口监听

linux 订阅