- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
这个问题只是为了兴趣:为什么 getpeername
- function Winsock
接收 namelen
参数作为指针?在我看来,这是一个主要的设计缺陷。
例子:
sockaddr_in addr;
int addrLength = sizeof(sockaddr_in);
if (getpeername(s, reinterpret_cast<sockaddr*>(&addr), &addrLength /* <- this */) != SOCKET_ERROR)
{
// ...
}
最佳答案
因为,正如您链接到的文档所描述的那样,它同时用于输入和输出。输入时,它是您提供的缓冲区的大小;在输出上它是结构的实际大小。
In my opinion, this is a major design flaw.
如果您事先知道套接字类型(以及地址信息大小),这会带来一些不便,如果您不知道,则可能会有用。
关于c++ - 为什么 getpeername 中的 namelen-parameter 在 Winsock 中使用指针?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16487712/
我正在用 C 语言研究一个简单的 TCP 服务器,并遇到以下问题。我的代码如下所示: struct sockaddr_in servaddr; socklen_t address_len; int c
我有以下代码,我试图用它来获取套接字另一端的地址,但是 getpeername() 总是失败,并出现错误的文件描述符 错误。我做错了什么? #include #include #include #i
我想获取连接到我的服务器套接字的套接字的 IP 地址。我已经包含了我的代码。 sa_data 不返回类型为“xxx.xxx.xxx.xxx”的 char[14]。相反,它返回 [11][1][xxx]
编辑:重申问题,如果我正在监听端口 54321 并且监听端口 12345 的本地进程连接到我,创建套接字 s,我如何真正找到它正在监听的端口? sockaddr_in addr; int len =
我做了一个简单的套接字程序(服务器/客户端)。服务器在 windows 上运行,客户端是 android 应用程序,其中包含由 c 套接字组成的共享库。 在客户端,为了避免卡住,我将套接字更改为 NO
我正在 Linux 上编写我的第一个套接字程序,并试图打印我连接到的对等点的 IP 地址和端口。我使用 getpeername() 以及 inet_ntop() 和 ntohs() 从 sockadd
我在本地机器上运行我的应用程序服务器,在虚拟机 (Windows Server 2012) 上运行应用程序客户端。 我正在使用 NAT 网络设置。 当我从服务器调用 getpeername() 时,我
在服务器中,我知道可以获取本地计算机(AKA对等方)的地址信息 通过使用accept方法,但是我看到有些人在接受连接后正在使用getpeername()作为该地址。 结果有什么不同吗? 我看到了以下l
我用这一行得到了一个旧代码: getpeername(0, (struct sockaddr *)&sin, &namelen) getpeername(0,...) 有什么作用?它适用于所有操作系统
在我的 Linux C++ 应用程序中,我使用 getpeername 来获取对等 IP。我的问题是:当我在我的机器上启用 IPv6 时,我从对等方获得的 IP 属于 IF_INET6 系列,尽管它是
在带有套接字程序的C中,我尝试在服务器套接字中插入getpeername()和getsockname,以在服务器端打印服务器套接字和客户端套接字的IP地址。注意:我的服务器套接字使用 INADDR_A
每当我使用函数 getpeername() 时,我的程序都会崩溃并在调试时返回 255。它是 printf 的主机名,当它开始尝试 printf peername 时,它显示“Peer Name:
在我的 Linux C++ 应用程序中,我使用了 getpeername 和 getsockname。当操作系统启用 IPv6 时,getpeername 和 getsockname 都只返回端口!
getpeername() 会返回远程 UDP 对端的 IP 地址信息吗?我怀疑它无法正常工作,因为它需要连接。 请确认是否可以使用getpeername()获取远程UDP对端地址。 最佳答案 如果
我想问一下 getpeername() 函数,因为它返回数据,如标题所述。我试图直接从 accept() 函数中获取值,结果也一样。端口的值似乎随机出现,即使地址的值是正确的(地址是 127.0.0.
我有一个用 C 编写的服务器 (A) 和一个客户端 (B),运行在同一台 Linux 计算机上。服务器将一个端口绑定(bind)到 INADDR_ANY,客户端将另一个端口绑定(bind)到 INAD
我正在尝试获取连接到服务器套接字的客户端的 IP 和端口。我传递了以下函数客户端套接字文件描述符,但它返回 0.0.0.0:0这让我发疯,但有时它会返回类似 248.127.0.0:24870 的内容
这个问题只是为了兴趣:为什么 getpeername- function Winsock 接收 namelen 参数作为指针?在我看来,这是一个主要的设计缺陷。 例子: sockaddr_in add
在我的程序中,我在 libevent 事件循环中为 connfd 注册了一个 EV_READ 事件。触发此事件时,我使用 getpeername 获取对等方的 IP/PORT 地址 socklen_t
进程之间,有一个通过msg共享的socket。通过socket,尝试获取远程连接信息。但 getpeername 结果是 0.0.0.0 没有任何错误。 即使我检查了/proc/net/tcp 也没有
我是一名优秀的程序员,十分优秀!