各位老哥,小弟最近遇到一个问题,关于操作系统的端口占用问题,我们一般和端口打交道都是直接使用的,什么 firewalld 和各种 web 服务直接监听了,但是具体是如何实现这个监听的呢? Google 了一圈,基本都是在说怎么样列出已经监听的端口和 Socket 监听,和我想要的不一样。各位老哥如果了解这方面的知识,希望给小弟指一条路。
问题描述:如何占用一个操作系统的端口,最原生的方法,举个例子,使用 Linux 下的 shell 或者 windows 下的 bat 实现。
已有思路:没有思路
1
amrom OP 已有思路:操作系统级别的 API?
|
2
GuuJiang 2020-04-12 12:11:54 +08:00 2
你要的简单版答案
nc -l 9999 命令不要退出,此时就占用了 tcp 的 9999 端口了 其实你会提出这样的疑问,可能是你把端口当成了某种开关,所以期望有某个命令把它拨到“占用”状态,某个命令再拨到“未占用”状态,事实上“端口占用”是一个持续的状态,我们平时所谓的某个端口被占用,实际是指的某个应用程序在某个端口上 listen |
3
abcdabcd987 2020-04-12 12:18:52 +08:00
|
4
azh7138m 2020-04-12 13:00:04 +08:00
Unix 里面,bind 这个方法,第二个参数可以传 sockaddr,这个结构体里面有个成员是 sin_port,代表你要绑定 socket 到哪个端口
文档就是楼上贴的 |