签名不同-警告

sta*_*oun 4 c gcc warnings socklen-t

我不明白我在gcc编译器中发出的警告。警告是:warning: pointer targets in passing argument 6 of ‘recvfrom’ differ in signedness我不知道,哪里出了问题,我没有signed and unsigned使用价值。

问题在线:

recvfrom(server_socket, inputbuffer, maxLenght, 0, (struct sockaddr*) remote_addr, &server_addr_len);
Run Code Online (Sandbox Code Playgroud)

我尝试了这个:

recvfrom(server_socket, inputbuffer, maxLenght, 0, (unsigned int) remote_addr, &server_addr_len);
Run Code Online (Sandbox Code Playgroud)

但这并没有帮助我。感谢您的建议和解释。

alk*_*alk 5

recvfrom()

ssize_t recvfrom(int sockfd, void *buf, size_t len, int flags,
                    struct sockaddr *src_addr, socklen_t *addrlen);
Run Code Online (Sandbox Code Playgroud)

recvfrom()期望socklen_t作为第六个参数。您可能会通过int

因此定义server_addr_len如下:

socklen_t server_addr_len;
Run Code Online (Sandbox Code Playgroud)