amrom
V2EX  ›  问与答

关于端口占用的疑问

  •  
  •   amrom · Apr 12, 2020 · 1960 views
    This topic created in 2292 days ago, the information mentioned may be changed or developed.

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

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

    已有思路:没有思路

    4 replies    2020-04-12 13:00:04 +08:00
    amrom
        1
    amrom  
    OP
       Apr 12, 2020
    已有思路:操作系统级别的 API?
    GuuJiang
        2
    GuuJiang  
       Apr 12, 2020   ❤️ 2
    你要的简单版答案
    nc -l 9999
    命令不要退出,此时就占用了 tcp 的 9999 端口了

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

    文档就是楼上贴的
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   4488 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 37ms · UTC 00:09 · PVG 08:09 · LAX 17:09 · JFK 20:09
    ♥ Do have faith in what you're doing.