linux:套接字编程,accept(sd, null, null)

标签 linux sockets

我有一个关于套接字编程的问题。

accept()函数的原型(prototype)如下:

int accept(int s, struct sockaddr *addr, socklen_t *addrlen);

我想知道当我在第二个和第三个参数中输入 null 时会发生什么?

accept(sd, NULL, NULL);

没有sockaddr的信息能正常运行吗?如果是,为什么?

最佳答案

accept返回时,addraddrlen 参数用于填写有关源(ie,peer)的信息。通过为 addr 传入 NULLaddrlen 将被忽略,并且不会返回任何信息。您实际上不需要知道对等点是谁来开始网络事务,但知道对日志记录或访问控制很有帮助。如果您没有在 accept 上获得对等信息,但稍后需要它,则必须调用 getpeername .

关于linux:套接字编程,accept(sd, null, null),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40689585/

相关文章:

linux - 如果最多有两个字符不同,则匹配一个字符串

linux - sdl支持ARM lcd视频显示吗?

linux libiconv 从 ISO8859 或 IBM850 转码到 UTF8 错误

php - 适用于 Linux 和 PHP 5.4 的 MSSQL Server 的 native ODBC 驱动程序

python - 如何在 Amazon EC2 linux 上安装 lxml 依赖项?

c++ - Winsock 使用 send() 和 FD_WRITE

java - 使用 BouncycaSTLe 与 PSK 的 TLS 连接

sockets - UDP 套接字没有响应

python - 套接字发送超时 - 更改是否安全?

linux - accept() 失败时 sockaddr 的状态是什么