客户端程序,基于TCP/IP阻塞模式
连接服务器,代码如下:
HANDLE hThread;
hThread = CreateThread(NULL,0,ThreadLINK,(LPVOID)LINKPORT,0,NULL);
Sleep(4000);
CloseHandle(hThread);
ThreadLINK函数中就包含connect函数
当Sleep很短的时间的时候,就连接不上服务器,但当时间很长的时候界面就无法响应其他消息(和不创建线程连接一样了),请问线程到底该怎么写??

解决方案 »

  1.   

    楼主是把主线程SLEEP了么?SLEEP时间长主界面当然没法响应其他消息了
    主线程SLEEP时间短,肯定TCP连接刚刚连上(或者没连上)就已经被CLOSEHANDLE()了
    我不太明白你为什么刚刚创建一个线程,连接一下,就要CLOSEHANDLE啊?
    没有循环语句什么的吗?
      

  2.   

    主线程已经Sleep了
    线程函数ThreadLINK中不只是连接,也包含send,recv之类的函数
      

  3.   

    看来问题是出在了
    Sleep(4000);
    上了
      

  4.   

    你将主线程即UI线程Sleep了,当然不响应了。在主线程中不要Sleep,定义一个消息,当ThreadLINK
    的conncet完成后就向窗口发消息,这样你就知道他是已经连接上了。或者直接用WSAAsyncSelect