while (1)
{
if (cClient >= MAX_CLIENT)
continue; SOCKADDR_IN clientAddr;
int AddrLen;
SOCKET s = accept(serv, (SOCKADDR*)&clientAddr,
&AddrLen);
if (s == INVALID_SOCKET)
{
continue;
}
....客户端已经从connect成功返回, 但服务器端始终有 s == INVALID_SOCKET, 这是怎么回事?? 判断accept操作是否成功, 应该是这样写的吧, 另外阻塞模式下accept一段时间后也会返回, 这个超时时间是怎么规定的呢?
{
if (cClient >= MAX_CLIENT)
continue; SOCKADDR_IN clientAddr;
int AddrLen;
SOCKET s = accept(serv, (SOCKADDR*)&clientAddr,
&AddrLen);
if (s == INVALID_SOCKET)
{
continue;
}
....客户端已经从connect成功返回, 但服务器端始终有 s == INVALID_SOCKET, 这是怎么回事?? 判断accept操作是否成功, 应该是这样写的吧, 另外阻塞模式下accept一段时间后也会返回, 这个超时时间是怎么规定的呢?
while (1)
{
if (cClient >= MAX_CLIENT)
continue; SOCKADDR_IN clientAddr;
int AddrLen = sizeof (clientAddr);
~~~~~~~~~~~~~这儿和你原来不一样
SOCKET s = accept(serv, (SOCKADDR*)&clientAddr,
&AddrLen);
if (s == INVALID_SOCKET)
{
continue;
}
int AddrLen = sizeof(clientAddr); 那地方居然是行空白, 出版社害人啊
多谢xstring(麻雀)帮忙, 这么晚了还工作啊 :)