今天花了好长时间调试的一个低级问题:
class CAsyncSocket
{
public:
......
bool connect();
void OnConnect();
void OnReceive();
}
class A
{
public:
......
static DWORD WINAPI thread(LPVOID);
void new_connect();
CAsyncSocket* m_socket;
}
void A::new_connect()
{
if(m_socket==NULL)
{
m_socket = new CAsyncSocket();
m_socket->connect();
}
}
DWORD WINAPI A::thread(LPVOID pt)
{
(A)pt->new_connect(); //这边调用类里的函数初始化网络并连接,
//因为CAsYncSocket为消息事件方式,需要加入消息循环才能正常工作
//线程里加入消息循环 --------------
MSG msg;
while (GetMessage(&msg, 0, 0, 0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
//-------------------
return 0;
}
线程中的new造成的异步socket 连接问题
最新推荐文章于 2025-06-03 10:45:17 发布
本文介绍了一个关于CAsyncSocket类在网络连接初始化过程中遇到的问题及其解决办法。问题出现在使用线程进行网络初始化,并通过消息循环使CAsyncSocket正常工作。
1447

被折叠的 条评论
为什么被折叠?



