我正在编写一个简单的套接字守护程序,女巫监听一个端口并读取传入的数据。它工作正常,直到我选择断开客户端与服务器的连接......然后它进入无限循环 recv() 返回最后一个数据包永远不会到达-1。我的问题是如何检测到客户端已断开连接并关闭线程/套接字 el
我的线程如下:
void * SocketHandler(void* lp){
int * csock = (int*)lp;
int test = 0;
char buffer[1024];
int buffer_len = 1024;
int bytecount,ierr;
memset(buffer,0,buffer_len);
while (test == 0)
{
if ((bytecount = recv(*csock, buffer, buffer_len, 0))== -1){
close(csock);
free(csock);
test++;
return 0;
}
else
{
syslog(LOG_NOTICE,"%s",buffer);
}
}
return 0;
};