网络接收数据线程终止问题????

vcScholar 2008-08-20 09:47:42
各位大侠帮忙啊!!
我在做网络不断接收数据的代码中,下面的代码是想要断开套接字的连接,同时将接收线程终止(接收的数据是结构体类型)
void CUDPSocket::StopServer(){ //停止服务器,也就是将端口断开
if (!m_bAvailable){
return;
}
Sleep(1000);
m_bAuto = FALSE;
closesocket(m_uSocket);
m_uSocket = NULL;
}
BOOL CUDPSocket::StopReceiving(){ //停止接收数据线程
if (!m_bAvailable){
return FALSE;
}
m_bAuto=FALSE;
return TRUE;
}
在对话框的调用中的顺序是:
m_psockServer->StopServer(); //断开端口
m_psockServer->StopReceiving(); //停止线程
但不晓得为什么但调用上面代码时候,程序就不能运行了?? 各位大侠帮忙看下该怎么解决啊??

还有我在接收数据线程的函数中,首先便调用了:memset(strRecv, 0, sizeof(strRecv)); //将缓冲区内的数据清零
但为什么有时候还是会在对话框上出现乱码,如烫烫烫....
...全文
66 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
还没淹死的鱼 2008-08-20
  • 打赏
  • 举报
回复
为什么先关闭socket, 再停止接收呢?

不合逻辑阿
vcScholar 2008-08-20
  • 打赏
  • 举报
回复
是char strRecv[1024];
ouyh12345 2008-08-20
  • 打赏
  • 举报
回复
strRecv是什么类型?sizeof(strRecv)是多少?
ouyh12345 2008-08-20
  • 打赏
  • 举报
回复
最好使用非阻塞socket
ouyh12345 2008-08-20
  • 打赏
  • 举报
回复
在一个线程里,做个循环接收数据,在recv之前,都要判断是否需要推出

在结束的函数里,等待接收线程的返回,然后再关闭socket

18,356

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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