在关闭socket时windows会主动关闭accept连接,代码往下执行,我这判断accept成功与否的代码有误,导致执行到了reponse函数里。由于request变量为空,所以uri指针是空指针,执行if (strcmp(uri,"/")==0) 报错。
MainDlg.cpp第168行修改
C++代码
- SOCKET sockConn=accept(thsock,0,0);
- if(sockConn==INVALID_SOCKET)//==INVALID_SOCKET
原因,在linux上accept返回值是int ,win上accept返回值是指针。不能用0>sockConn判断
以上是一同事帮我排查的原因。有时不服不行。