为什么我在创建套接字的时候会出错?

zhuang094 2002-03-07 05:31:22
我从CSocket类派生了一个类:CMySocket::public CSocket.
我另外又创建了一个线程:CMyThread::public CWinThread;
在CMyThread的InitInstance()函数中:
{
if (!AfxSocketInit())
{
AfxMessageBox(IDP_SOCKETS_INIT_FAILED);
return FALSE;
}
....
CMySocket *pSocket = new CMySocket();
if (!(pDBSocket->Create())) //注意,这一句出错!
{
...
}

请教各位大侠,为什么会出错了?(好像是空指针的问题,但是在VC内部,我找不到。)
}
...全文
103 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
happydeer 2002-03-08
  • 打赏
  • 举报
回复
特别是涉及到多线程的问题时。CAsyncSocket封装了一个window以实现异步的socket读写。如果在一个线程中创建socket,在其他线程操作这个socket,很容易发生Assert(m_hSockWnd != NULL)的问题!

我以前写的一个程序,使用的CSocket。在主线程中创建,连接,在另外的线程中发送数据。好像没有发现什么太大的问题。我的客户端在接受数据一段时间后,会有些异常情况,也不知道是不是跟CSocket有关!

前几天,我又写一个socket的程序,也用CSocket,沿用上面的模式,老是出现问题。一气之下,自己封装类吧,用windows socket作,开几个线程阻塞操作socket,好像效果还可以:)
happydeer 2002-03-08
  • 打赏
  • 举报
回复
哈哈,还是自己封装几个socket api的类吧!

以前只是听说CSocket烂,现在我才真正意识到,他真烂!
wyt88 2002-03-08
  • 打赏
  • 举报
回复
是不是没有调用AfxSocketInit()这个函数,如果用到CSocket类一定要调用这个初始化函数的.
lizmei001 2002-03-08
  • 打赏
  • 举报
回复
CMySocket *pSocket = new CMySocket();
是什么意思,好像应该是CMySocket *pSocket = new CMySocket; 吧

skt01 2002-03-08
  • 打赏
  • 举报
回复
忘了告诉你,我用CAsyncSocket之后,所有的工作只在主线程中,不用线程了。
baoch110 2002-03-07
  • 打赏
  • 举报
回复
关注一下
zhuang094 2002-03-07
  • 打赏
  • 举报
回复
另开一个线程应该是要的
ppyy 2002-03-07
  • 打赏
  • 举报
回复
我记得在生成应用程序的时候如果选择了支持Socket的话,那么就不需要再初始化了吧,
if (!AfxSocketInit()) 这句是不是不需要?
zhuang094 2002-03-07
  • 打赏
  • 举报
回复
我改成从CAsyncSocket派生,同样出错。
zhuang094 2002-03-07
  • 打赏
  • 举报
回复
skt01(skt001):
和你说的完全一致!你是不是改用CAsyncSocket就可以了?
  • 打赏
  • 举报
回复
报的什么错误阿?
DeadWolf 2002-03-07
  • 打赏
  • 举报
回复
CSocket 和 CAsySocket不能在线程中创建

因为 在这两个类中已经封装了一个线程
skt01 2002-03-07
  • 打赏
  • 举报
回复
我也碰见过这种情况,在自己创建的线程中创建SOCKET总是失败,在主线程没有问题,我也不清楚原因,所以后来改用CAsyncSocket了。
  关注!!
zhuang094 2002-03-07
  • 打赏
  • 举报
回复
编译通过,运行时出错
zhuang094 2002-03-07
  • 打赏
  • 举报
回复
是我拷错了,程序中是一致的。pDBSocket应是pSocket。不好意思
tolison 2002-03-07
  • 打赏
  • 举报
回复
CMySocket *pSocket = new CMySocket();
pDBSocket->Create()

定义的是pSocket,而使用的是pDBSocket,大概这个原因吧!

1,649

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 非技术类
社区管理员
  • 非技术类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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