有个关于网络编程的错误,麻烦帮小弟看看!
时间: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;
}
/////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)
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的函数。
格式:int WSAStartup(WORD wVersionRequested,LPWSADATA lpWASData);
功能:此函数是对Windows Sockets DLL进行初始化,只有此函数调用成功后才可以调用其他Windows Sockets DLL的函数。
作者: tengyichen 发布时间: 2011-11-29
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28