如果我只有插座,我能找到端口号吗

Can I find the port number if I only have the SOCKET?

本文关键字:口号 插座 如果      更新时间:2023-10-16

如果我只有SOCKET,我能找到端口号吗?我正在挂接ws2_32调用,似乎有一个SOCKET正在尝试发送数据,但我没有关于这个SOCKET的信息。我想知道是否有办法从SOCKET获取sockaddr或端口?

我在UDP套接字上遇到了类似的问题,但我只是在它即将发送数据时从sockaddr中获取端口号并更新了我的信息,就解决了这个问题。但问题是,除了socket,我没有任何东西可以关闭。

该程序正在使用端口0制作一个SOCKET,稍后它将其分配给一个新端口。此时,我的程序在套接字上的信息已经使用端口0设置,这不是真的。所以,我需要找到一种方法。。。A: 找到基于SOCKET的端口,或者B:当windows更新端口时,我可以挂起它并更新端口。

有两个函数可以实现您想要的功能:

  1. getpeername-获取有关TCP连接另一端的信息
  2. getsockname-获取有关TCP和UDP的套接字(本地端)的信息