我刚刚被问到这个问题并且无法回答它,我看着我是如何编码的,并且真的很困惑。 这就是我在服务器中编写accept()调用的方法:
struct sockaddr_in client;
size=sizeof(client);
if(( nds=accept(ds,(struct sockaddr*)&client,&size)) <0)
{
perror("accept");
close(ds);
exit(-1);
}
其中ds是套接字描述符
我知道accept的第二个参数是指向struct的指针,但不知道为什么它应该为空。
答案 0 :(得分:3)
Weel,它是一个输出参数,您可以发送或不发送,但是当您发送它时,它将被连接套接字填充。
看看http://pubs.opengroup.org/onlinepubs/009695399/functions/accept.html
如果地址不是空指针,则为对等体的地址 接受的连接应存储在sockaddr结构中 按地址,该地址的长度应存储在 address_len指向的对象。