关于端口占用的疑问

2020-04-12 11:56:15 +08:00
 amrom

各位老哥,小弟最近遇到一个问题,关于操作系统的端口占用问题,我们一般和端口打交道都是直接使用的,什么 firewalld 和各种 web 服务直接监听了,但是具体是如何实现这个监听的呢? Google 了一圈,基本都是在说怎么样列出已经监听的端口和 Socket 监听,和我想要的不一样。各位老哥如果了解这方面的知识,希望给小弟指一条路。

问题描述:如何占用一个操作系统的端口,最原生的方法,举个例子,使用 Linux 下的 shell 或者 windows 下的 bat 实现。

已有思路:没有思路

1212 次点击
所在节点    问与答
4 条回复
amrom
2020-04-12 11:57:24 +08:00
已有思路:操作系统级别的 API?
GuuJiang
2020-04-12 12:11:54 +08:00
你要的简单版答案
nc -l 9999
命令不要退出,此时就占用了 tcp 的 9999 端口了

其实你会提出这样的疑问,可能是你把端口当成了某种开关,所以期望有某个命令把它拨到“占用”状态,某个命令再拨到“未占用”状态,事实上“端口占用”是一个持续的状态,我们平时所谓的某个端口被占用,实际是指的某个应用程序在某个端口上 listen
abcdabcd987
2020-04-12 12:18:52 +08:00
azh7138m
2020-04-12 13:00:04 +08:00
Unix 里面,bind 这个方法,第二个参数可以传 sockaddr,这个结构体里面有个成员是 sin_port,代表你要绑定 socket 到哪个端口

文档就是楼上贴的

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/661642

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX