本地套接字关闭时中断连接调用?
创始人
2024-11-30 03:00:22
0

该问题通常是由于代码中的连接关闭操作引起的。需要确保在调用连接函数后不会关闭本地套接字,直到连接关闭或超时,否则会中断连接调用。以下是一个示例,展示了一个可能会导致此问题的代码片段:

int fd = socket(AF_INET, SOCK_STREAM, 0);
// ...
connect(fd, (sockaddr*)&their_addr, sizeof(their_addr));
// ...
close(fd); // 非法的连接关闭操作,应该在连接关闭或超时后才能执行

为了解决该问题,可以在连接操作后仍然保留套接字文件描述符,并确保在连接关闭或超时后再关闭它。示例如下:

int fd = socket(AF_INET, SOCK_STREAM, 0);
// ...
connect(fd, (sockaddr*)&their_addr, sizeof(their_addr));
// ...
// 等待连接关闭或超时
fd_set rset, wset;
FD_ZERO(&rset);
FD_ZERO(&wset);
FD_SET(fd, &rset);
FD_SET(fd, &wset);
struct timeval tval;
tval.tv_sec = timeout_in_secs;
tval.tv_usec = 0;
int n = select(fd + 1, &rset, &wset, NULL, &tval);
if (n == 0) {
  // 超时
} else if (n == -1) {
  // 出错
} else {
  if (FD_ISSET(fd, &rset) || FD_ISSET(fd, &wset)) {
    // 连接已关闭
  } else {
    // 未知情况
  }
}
close(fd); // 正确的连接关闭操作,应该在连接关闭或超时后才能执行

相关内容

热门资讯

四分钟辅助!hhpoker辅助... 四分钟辅助!hhpoker辅助软件,xpoker透视辅助,要领教程(果真有挂)1、超多福利:超高返利...
8分钟辅助!拱趴大菠萝开挂方法... 8分钟辅助!拱趴大菠萝开挂方法,hhpoker免费透视脚本,项目教程(有挂详细)运拱趴大菠萝开挂方法...
四分钟辅助!wpk系统是否存在... 四分钟辅助!wpk系统是否存在作弊行为,wepoker辅助真的假的,妙招教程(有挂讲解)1、wpk系...
第5分钟辅助!wepoker私... 第5分钟辅助!wepoker私人辅助器,we-poker靠谱吗,步骤教程(真是有挂)1、起透看视 w...
第六分钟辅助!wpk透视插件,... 第六分钟辅助!wpk透视插件,德普之星私人局透视,指南书教程(有挂分析)1、上手简单,内置详细流程视...
九分钟辅助!werplan怎么... 九分钟辅助!werplan怎么透视,约局吧app有挂吗,指南教程(有人有挂)1、全新机制【约局吧ap...
第七分钟辅助!拱趴大菠萝机器人... 第七分钟辅助!拱趴大菠萝机器人,xpoker辅助控制,指南书教程(有挂辅助)1、用户打开应用后不用登...
第5分钟辅助!拱趴大菠萝开挂方... 第5分钟辅助!拱趴大菠萝开挂方法,pokermaster脚本,学习教程(有挂秘籍)拱趴大菠萝开挂方法...
五分钟辅助!wepoker有用... 五分钟辅助!wepoker有用吗,wpk作弊最怕三个东西,方案教程(有挂分享)1、下载好wpk作弊最...
第十分钟辅助!fishpoke... 第十分钟辅助!fishpoker透视底牌,pokernow辅助工具,妙计教程(有挂技术)1、不需要A...