大虾指点!
我编了个服务器客户端TCP/IP程序:
服务器端主要程序如下:
主函数中:
listen(sServer,8);
while (1) {
sClient=accept(sServer,(sockaddr *)(&(addrClient)),&addrlenClient);
hThread=CreateThread(NULL,0,ClientThread,(LPVOID)sClient,0,&dwThreadID);
} DWORD WINAPI ClientThread(LPVOID pParam){
操作.......
res=Valid_CRL(ID_Des);
if(res==0){
   send(sClient,"reconnect",5,0)//发送一个消息告诉客户端重连
   closesocket(sClient);
   return 0;
}
thread1 = CreateThread(NULL, 0 ,threadname,(LPVOID)sClient,0,&tid);
res = Valid_ID(ID_Des);   //调用一个函数
if(res==0){                //如果函数返回值是0,终止线程thread1
    TerminateThread(thread1,0);
    send(sClient,"reconnect",5,0)//发送一个消息告诉客户端重连
    closesocket(sClient);
    return 0;
}
  客户端: 
connect(sClient,(struct sockaddr *)&addrClient,sizeof(addrClient));
操作......
如果接收到重连信息,返回到上面的connect()重连我现在的问题是,如果服务器端调用函数Valid_CRL()返回值0,那么客户端将重新执行connnect()函数重连,一切正常。可是如果服务器端调用函数Valid_ID()返回值0,那么客户端重连的时候服务器端的accept()函数确一直不返回,也就是不接收客户端的connect().这是怎么回事?