大家请进,对于你们来说小事一桩

QIFENG8 2001-08-13 05:06:29
高手们:
近几天,我给多线程与TCP搞的头都大了,请救救我:
主程序:

err = WSAStartup( wVersionRequested, &wsaData );
sock = socket ( AF_INET,SOCK_STREAM,0);
err = bind (sock,(sockaddr *)&name,sizeof(name) );
err = listen (sock, 5);
.....................
然后建立了侦听线程: Tqidend1Thread
void __fastcall Tqidend1Thread::Change()
{ TqifsendThread *all1 = new TqifsendThread(v_sock,false);
all1->Resume();
all1->Terminate();}
void __fastcall Tqidend1Thread::Execute()
{ int len;
do {
len = sizeof( name1);
v_sock = accept( sock1, (struct sockaddr *)&name1, &len );
if(v_sock==-1){
continue;}
Synchronize(Change); }
while (!Terminated); }
在侦听线程里再建一个接受发送数据的线程 TqifsendThread
void __fastcall TqifsendThread::Execute()
{
do{ rc = RecvTcp(sock,buf,256,300);
if( rc < 0 )
{ MessageBox ( NULL, "recv fail", temp, MB_OK );
break; }
rc = SendTcp(sock,buf,256,300);
// Synchronize(Change);
} while(Terminated);
closesocket ( sock );
}
再起一个客户端向之循环发数据,但发了几次后客户端就connect出错。并且关闭客户端与服务端程序时只能先关闭服务端程序否则服务端就出现无数次接受出错。
。。。。。。。。请帮一下忙。拜托大家,解救我!
...全文
82 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
whitelion 2001-08-13
  • 打赏
  • 举报
回复
up

13,825

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧