重提:winthread 下调用sock->create()出错的问题
写了个线程 调用clientsock->create()弹出读取冲突错误,原来clientsock继承自CSocket,后来改成继承自CAsy??Socket(忘了怎么写了),错误依旧,部分代码如下,望高手帮忙解决下:
BOOL CClientThread::InitInstance()
{
ConnectServer("169.254.77.77","1025");
return TRUE;
}
void CClientThread::ConnectServer(CString ServerName,CString PortAddress)
{
m_ServerName=ServerName;
m_PortAddress=PortAddress;
if(m_pSocket)
{
AfxMessageBox("已经连接到服务器,重新连接请先关闭连接!");
return;
}
m_pSocket = new CRequestSocket(this);
//if(!(m_pSocket = OnConnectServer(ServerName,PortAddress)))
//{
// m_pSocket = NULL;
// return;
//}
if(!(m_pSocket->Create()))
{
delete m_pSocket;
m_pSocket = NULL;
AfxMessageBox("创建Socket失败!");
return ;
}
if(!m_pSocket->Connect(ServerName,atoi(PortAddress)))
{
delete m_pSocket;
m_pSocket = NULL;
AfxMessageBox("请求连接服务器失败!");
return ;
}
else
{
IsConnect=TRUE;
AfxMessageBox("连接成功!");
}
}
问题点数:50、回复次数:3Top
1 楼DentistryDoctor(不在无聊中无奈,就在沉默中变态)回复于 2006-07-03 10:57:18 得分 0
弹出读取冲突错误?
指针是否有效?Top
2 楼阿甘(一直不停的在跑)回复于 2006-07-03 15:51:33 得分 0
难道是没初始化sock -_-Top
3 楼song_09(song)回复于 2006-07-03 18:53:09 得分 0
在新线程中使用CSocket时要先初始化socket环境!
AfxInitSocket():Top




