我刚刚从 Linux 中的连接 API 收到错误。
我知道如果连接成功,“connect”将返回零,我得到返回值“3”
是错误代码吗?还是还有什么不知道的?
connect(sock, (struct sockaddr*)&serv_addr, sizeof(serv_addr));
我从 socks 中得到了值 3。
最佳答案
要获取 connect()
的返回值,最直接的方法是使用用作赋值左侧的变量。
int result = connect(sock, (struct sockaddr*)&serv_addr, sizeof(serv_addr));
printf("connect returned: %d\n", result);
sock
必须是套接字,并且由于调用 socket()
而被分配了一个文件描述符编号。大多数返回新文件描述符的 UNIX API 将返回最低的可用文件描述符。程序通常以已使用的描述符 0
、1
和 2
开始(对于 STDIN、STDOUT 和 STDERR)。因此,socket()
返回 3
并不意外。
关于c - Linux 中的套接字连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37933600/