gpt4 book ai didi

c套接字连接错误关闭套接字

转载 作者:行者123 更新时间:2023-11-30 18:28:15 26 4
gpt4 key购买 nike

这是代码

    tcp_sockfd = socket(AF_INET , SOCK_STREAM , 0);
if (tcp_sockfd == -1) {
printf("Could not create socket");
return 1;
}

if (connect(tcp_sockfd , (struct sockaddr *)&config->tcp_srvaddr , sizeof(config->tcp_srvaddr)) < 0) {
printf("connect failed. return 1\n");
return 1;
}

struct timeval tv = {30, 0};
setsockopt(tcp_sockfd, SOL_SOCKET, SO_RCVTIMEO, (struct timeval *)&tv, sizeof(struct timeval));

if(send(tcp_sockfd , data , len , 0) < 0) {
printf("send failed.\n");
return 1;
}
printf("Send complete\n");

close(tcp_sockfd);

如果套接字发送或连接失败,我是否需要关闭套接字?或者如果错误时钟自动关闭?

最佳答案

套接字永远不会自行关闭。当您使用完套接字后,需要调用 close 来释放描述符。

请注意,无论连接本身是否打开,套接字都作为连接的句柄保持打开状态。关闭连接(例如,使用 shutdown 或由另一方启动)不会关闭套接字。

关于c套接字连接错误关闭套接字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48858159/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com