+ -
当前位置:首页 → 问答吧 → 有个关于网络编程的错误,麻烦帮小弟看看!

有个关于网络编程的错误,麻烦帮小弟看看!

时间:2011-11-29

来源:互联网

这个是发送消息线程,但是有错,我调试了,每次执行到sockClient.Create();就出错,但是我不知道这句话错在哪里了,求指点

/////TCP发送信息线程//////////
UINT _SendMsgThread(LPVOID lparam)
{
//
CTestDlg *pDlg=(CTestDlg *)lparam;
//if(pDlg->StopServer==true) return -1;
//pThreadLisen=::AfxBeginThread(_ListenTcpThread,this); //开始TCP线程
CSocket sockClient;
sockClient.Create();
CString ip,strError;
//pDlg->m_You_IP.GetWindowText(ip);
int conn=sockClient.Connect(otherip, PORT+pDlg->m_client);
if(conn==0) ///////////////////////////////////
{
AfxMessageBox("_SendMsgThread Connect错误!"+pDlg->GetError(GetLastError()));
sockClient.ShutDown(2);
sockClient.Close();
AfxEndThread(1L);
return 0;

}
//首先发送标记M为信息,2
int end=0;
end=sockClient.Send("M",FLAG); 
if(end==SOCKET_ERROR)
{
AfxMessageBox("_SendMsgThread Send错误!"+pDlg->GetError(GetLastError()));
return -1;
}
else if(end!=2)
{
AfxMessageBox("消息头错误");
return -1;
}
CString strMsg=pDlg->m_MsgSend;
end=sockClient.Send(strMsg,strMsg.GetLength()); 
if(end==SOCKET_ERROR)
{
AfxMessageBox("_SendMsgThread Send错误!"+pDlg->GetError(GetLastError()));
return -1;
}
CString strLocalName;
pDlg->GetLocalHostName(strLocalName);
CString strLocalIP;
pDlg->GetIpAddress(strLocalName,strLocalIP);
pDlg->AddMsgList(strLocalIP+"->"+strLocalName,strMsg);

int i=0;
sockClient.Close();
return 0;
}

作者: qhyhaiyang   发布时间: 2011-11-29

初始化socket
wsastartup(xxx)

作者: yynetsdk   发布时间: 2011-11-29

能不能说详细点?wsastartup(xxx)是什么意思?谢谢

作者: qhyhaiyang   发布时间: 2011-11-29

启动Winsock服务WSAStartup()
格式:int WSAStartup(WORD wVersionRequested,LPWSADATA lpWASData);
功能:此函数是对Windows Sockets DLL进行初始化,只有此函数调用成功后才可以调用其他Windows Sockets DLL的函数。

作者: tengyichen   发布时间: 2011-11-29