发送文件程序退出时报Socket错误!

jjdzyj 2005-06-23 03:15:11
发送线程
CSocket sockListen;
sockListen.Create(5000);
sockListen.Listen();
sockListen.Accept(lpThis->m_sockConnect);
sockListen.Close();
文件发送完成后,lpThis->m_sockConnect.Close();

接收线程
sockClient.Create();
sockClient.Connect((LPCTSTR)strIP, 5000);
接收完成后sockClient.Close();

但是在文件传送完成后,关闭发送线程程序时报错。请问为什么啊?
BOOL CAsyncSocket::AsyncSelect(long lEvent)
{
ASSERT(m_hSocket != INVALID_SOCKET);

_AFX_SOCK_THREAD_STATE* pState = _afxSockThreadState;
ASSERT(pState->m_hSocketWindow != NULL);//程序在该处报错,值为NULL

return WSAAsyncSelect(m_hSocket, pState->m_hSocketWindow,
WM_SOCKET_NOTIFY, lEvent) != SOCKET_ERROR;
}
...全文
53 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
xing_xing_xing 2005-06-24
  • 打赏
  • 举报
回复
先关闭发送线程程序,然后lpThis->m_sockConnect.Close();
Zhymax 2005-06-24
  • 打赏
  • 举报
回复
既然关闭socket,不应该调用AsyncSelect()了
goodboyws 2005-06-23
  • 打赏
  • 举报
回复
如果你用了多线程, CSocket改为CAsyncSocket

18,356

社区成员

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

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