V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
unt
V2EX  ›  问与答

如何监听已经被占用的端口(假设是 888,大家发发发)

  •  
  •   unt · Sep 15, 2022 · 1643 views
    This topic created in 1322 days ago, the information mentioned may be changed or developed.
    nc 应该监听不了,显示绑定失败。
    windows 下用 Socket Tool 监听,没有报错,netstat 查出来有两条记录:
    1. ****:888 java.exe
    2. 内网 ip:888 socket tool.exe
    那这究竟算不算监听成功,因为我用客户机往它发消息它并没有收到。


    另外 linux 服务器如何监听已被占用的 UDP 端口
    5 replies    2022-09-15 16:21:46 +08:00
    wudicgi
        1
    wudicgi  
       Sep 15, 2022
    pcap 抓包?
    villivateur
        2
    villivateur  
       Sep 15, 2022 via Android
    linux 有一个 tcpdump 的工具,但 udp 不知道行不行
    pcmid
        3
    pcmid  
       Sep 15, 2022 via iPhone
    linux 可以使用 SO_REUSEPORT 来监听同一个端口,不过可能不符合 op 的要求,请求会被负载均衡到每一个 fd 上
    cubecube
        4
    cubecube  
       Sep 15, 2022
    @villivateur 可以得,tcpdump 是直接在 3 层监听的
    dilu
        5
    dilu  
       Sep 15, 2022
    你说的这个不算监听成功,因为一个 socket 链接是一个五元组,即源 ip 源端口 协议 目的 ip 目的端口

    你的两个端口看似一样,但是源 ip 不一样

    你可以同时在 127.0.0.1:8080 和 0.0.0.0:8080 上监听,但是这两个不是同一个 socket 。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   984 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 42ms · UTC 21:55 · PVG 05:55 · LAX 14:55 · JFK 17:55
    ♥ Do have faith in what you're doing.