TCP连接断开 send是否成功
发布时间
阅读量:
阅读量
如题所述,突然产生一个疑问,假设server与client通过TCP协议完成连接建立后,server突然发生故障并停止运行。此时,client调用send()函数所返回的值会是怎样的呢?
测试结果:
当client成功连接至server后,若server进程意外终止,client在首次进行数据发送时仍然能够成功完成发送操作。
抓包结果如下图所示:

然而,第二次调用send()函数时将遭遇失败,返回值为-1,并伴随Errno 32错误提示,即“Broken pipe”。与此同时,系统也无法捕获到相应的数据报文。相关测试代码如下所示:
server.c
#include<stdlib.h>
#include<stdio.h>
#include<errno.h>
#include<string.h>
#include<netdb.h>
#include<sys/types.h>
#include<netinet/in.h>
#include<sys/socket.h>
#
全部评论 (0)
还没有任何评论哟~
