c - Linux 中的套接字连接

标签 c linux sockets

我刚刚从 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 将返回最低的可用文件描述符。程序通常以已使用的描述符 012 开始(对于 STDIN、STDOUT 和 STDERR)。因此,socket() 返回 3 并不意外。

关于c - Linux 中的套接字连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37933600/

相关文章:

Java 网络序列化在可序列化对象上失败

c++ - 使用包含宏扩展定义宏

c - 自动为执行的程序提供输入

linux - 尽管包含符号,perf 也不在注释中显示源代码

.net - 验证 .NET 套接字上使用的 SSL/TLS 级别?

c# - 使用 TcpListener.AcceptSocket();在单独的线程中导致线程阻塞?

c - 如何更改Intel icc编译器的缓存写入策略

c - 这个 char 数组如何存储四个单独的字符串?

python - 删除输入时使用并行运行 html2text

php - 加载网页时发现瓶颈?