netstat -an查看端口网络状态分析

netstat -an查看端口网络状态分析1 前言 socket 建立连接的时候 服务器端需要 socket bind listen accept 其中 bind 需要绑定 ip 地址和端口号 accept 之后 会生成一个新的 socket 这个 socket 会对应一个新的端口号 客户端需要 socket connect 多个客户端可以同时去连接同一个服务器端 2 命令结果分析由上图可知 localAddress 是我们本地机 IP 后面跟着的是端口号 ForeignAddre 是与该主机连接的电脑 ip 后面跟着的是

 1、前言:

socket建立连接的时候,服务器端需要socket ,bind,listen,accept:

其中,bind需要绑定服务器端的ip地址和端口号;

accept之后,会生成一个新的socket ,这个socket即与客户端进行通信的socket;

客户端需要socket,connect:(当然也可以使用bind,指定客户端的ip和端口号)

多个客户端可以同时去连接同一个服务器端。

客户端也可以使用bind函数来绑定自身ip和自定义端口号,但一般在客户端程序中不使用,所以系统就会隐式绑定一个随机的端口号;

这也就是为什么,netstat -an查看端口网络状态分析

 服务器端的端口号是我们固定的端口号23,而客户端对应的端口号是49361,46100,这种随机的端口号原因。

2、命令结果分析

proto:连接方式

local address:本地连接地址

foreign address:和本地建立连接的地址

state:当前端口状态,其中state会出现以下各种情况:

       LISTEN:侦听来自远方的TCP端口的连接请求–>表明这是服务器端,调用accpt()之后,就会处于listen状态;
       SYN_SENT:再发送连接请求后等待匹配的连接请求–>主动发起连接的一方,发送syn后的状态;
  SYN_RECEIVED:再收到和发送一个连接请求后等待对方对连接请求的确认–>被动连接的一方接收syn,后,并发送syn,ack后的状态
  ESTABLISHED:代表一个打开的连接–>客户端接收syn和ack
  FIN_WAIT_1:等待远程TCP连接中断请求,或先前的连接中断请求的确认
  FIN_WAIT_2:从远程TCP等待连接中断请求
  CLOSE_WAIT:等待从本地用户发来的连接中断请求
  CLOSING:等待远程TCP对连接中断的确认
  LAST_ACK:等待原来的发向远程TCP的连接中断请求的确认
  TIME_WAIT:等待足够的时间以确保远程TCP接收到连接中断请求的确认
  CLOSED:没有任何连接状态









通过这个命令查看计算机上的连接。

netstat -an查看端口网络状态分析

由上图可知:local Address 是我们本地机IP,后面跟着的是端口号;

Foreign  Address是与该主机连接的电脑ip,后面跟着的是与之相连的客户端随机分配的端口号(相当于accept之后的端口值);

23端口是telnet 服务,我们看到有2台foreign机通过telnet连接了本地机。

netstat -an查看端口网络状态分析

表示23端口在监听listen状态,表示是服务器端进程。

netstat -an查看端口网络状态分析

 可以看到有两台客户端电脑在通过telnet连接服务器,两个客户端分别分配了49361和46100两个端口号;

3、总结:

客户端connect服务器端的23端口程序;

服务器端accept   A客户端后,创建了一个新的socket,对应一个新的端口号49361;

服务器端accept B客户端后,创建了一个另一个新的socket,对应另一个新的端口号46100。

也就是说,最终一个客户端进程对应一个端口号。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/177057.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月26日 下午8:25
下一篇 2026年3月26日 下午8:25


相关推荐

  • 寻求全站搜索功能开发思路

    寻求全站搜索功能开发思路

    2021年9月22日
    44
  • vue之解决跨域问题[通俗易懂]

    vue之解决跨域问题[通俗易懂]同源策略:http协议、主机名、端口号都要相同。因为浏览器同源策略的影响,向后端服务器请求数据的时候,不能进行访问。可以采用代理服务器的方式,代理服务器:浏览器向一个相同同源策略的g代理服务器上请求资源,因为服务器之间没有同源策略,代理服务器就去找后端服务器请求资源,在返回给浏览器解决方法一:在根目录下新建vue.config.js文件,这里是js文件哈。module.exports={ lintOnSave:false,//取消格式化 devServer:{ proxy:

    2025年12月13日
    3
  • php 容器_php依赖注入容器库

    php 容器_php依赖注入容器库原标题:PHP容器——Pimple运行流程浅析需要具备的知识点闭包闭包和匿名函数在PHP5.3.0中引入的。闭包是指:创建时封装周围状态的函数。即使闭包所处的环境不存在了,闭包中封装的状态依然存在。理论上,闭包和匿名函数是不同的概念。但是PHP将其视作相同概念。实际上,闭包和匿名函数是伪装成函数的对象。他们是Closure类的实例。闭包和字符串、整数一样,是一等值类型。创建闭包:$closure…

    2025年8月4日
    4
  • 网站用户单点登录系统

    1背景
      在网站建设的过程中,多个应用系统一般是在不同的时期开发完成的。各应用系统由于功能侧重、设计方法和开发技术有所不同,也就形成了各自独立的用户库和用户认证体系。随着网站的发展,会出现这样的用户群体:以其中的一个用户为例,他(她)使用网站的多个应用系统,但在每个应用系统中有独立的账号,没有一个整体上的网站用户账号的概念,进入每一个应用系统前都需要以该应用系统的账号来登录。这带给用户不方便的使用感受,用户会想:既然我使用的是同一个网站上的应用,为什么不能在一次在网站上

    2022年4月13日
    94
  • C语言switch case语句详解

    C语言switch case语句详解当分支比较少的时候我们使用 ifelse 语句解决 当分支比较多的时候 我们要使用 switchcase 语句解决 针对分支的复杂性选择合适的程序解决 当分支过多时 用 ifelse 处理会不太方便 而且容易出现 ifelse 配对出错的情况 例如 输入一个整数 输出该整数对应的星期几的英文表示 include stdio h intmain inta stdio h

    2026年3月26日
    2
  • javaweb大全:地址来自 孤傲苍狼

    javaweb大全:地址来自 孤傲苍狼https www cnblogs com xdp gacl tag JavaWeb E5 AD A6 E4 B9 A0 E6 80 BB E7 BB 93 转载于 https www cnblogs com chyxOne p 9767595 html

    2026年3月20日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号