首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Netstat输出boost::Asio

Netstat输出boost::Asio
EN

Stack Overflow用户
提问于 2018-01-05 06:16:37
回答 1查看 172关注 0票数 0

我已经创建了一个带有受体的asio服务器:

代码语言:javascript
复制
m_acceptor(m_ios, asio::ip::tcp::endpoint(asio::ip::address_v4::any(), port_num)

其中端口号为3333

此时,netstat -antup命令显示:

代码语言:javascript
复制
13:tcp        0      0 0.0.0.0:3333 0.0.0.0:*  LISTEN      26566/./test

因此,我相信这意味着本地地址0 0.0.0.0:3333已准备好监听端口3333上的任何连接。

在此之后,我启动了客户机,它创建了ip : 127.0.0.1和端口3333的端点

在此之后,netstat输出是:

代码语言:javascript
复制
tcp        0      0 0.0.0.0:3333     0.0.0.0:*         LISTEN      26566/./test

tcp        0      0 127.0.0.1:3333   127.0.0.1:46675   ESTABLISHED 26566/./test

tcp        0      0 127.0.0.1:46675  127.0.0.1:3333    ESTABLISHED 26685/./test

Process 26566 is master process
Process 26685 is slave process

我不明白的是,端口46675在上面显示的地址中意味着什么?这肯定代表了客户端,但是这个端口号是从哪里分配给客户机的?这是否意味着客户端已经连接到端口3333,但它自己连接的端口是46675?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-01-06 03:19:54

这是否意味着客户端已经连接到端口3333,但它自己连接的端口是46675?

基本上。它描述了客户端端点。这是BSD/Posix套接字术语。

我不明白的是,端口46675在上面显示的地址中意味着什么?这肯定代表了客户端,但是这个端口号是从哪里分配给客户机的?

它从本地端口范围自动选择(通常是在内核中的TCP堆栈)。例如,在linux上,您可以操作这个范围(如果您有权限):

代码语言:javascript
复制
sudo sysctl -w net.ipv4.ip_local_port_range="60000 61000" 

(警告:除非你知道自己在做什么,否则不要这么做)。另见port

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48108197

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档