套接字创建失败
场景:套接字创建失败怎么处理
套接字创建失败怎么办
孙鑫老师的第十五课的视频
中BOOL CChatDlg::InitSocket()
{
m_socket=socket(AF_INET,SOCK_DGRAM,0);
if(INVALID_SOCKET==m_socket)
{
MessageBox("套接字创建失败!");
return FALSE;
}
SOCKADDR_IN addrsock;
addrsock.sin_family=AF_INET;
addrsock.sin_port=htons(5000);
addrsock.sin_addr.S_un.S_addr=htonl(INADDR_ANY);
int retval;
retval=bind(m_socket,(SOCKADDR*)&addrsock,sizeof(SOCKADDR));
if(SOCKET_ERROR==retval)
{
closesocket(m_socket);
MessageBox("绑定失败!");
return FALSE;
}
return TRUE;
}
运行时弹出套接字创建失败 求高手指点
ps:本人用的是MFC
还有用的是校园网
怎么办?
------解决方案--------------------
if(INVALID_SOCKET==m_socket)
{
MessageBox("套接字创建失败!");
return FALSE;
}
这MessageBox后面加以下代码:
int nCodeError=::GetLastError();
CString s;
s.Format("%d",nCodeError);
MessageBox(s,MB_OK);
return false;
//捕捉错误原因!!
------解决方案--------------------
有没有加这段代码啊
#include <Winsock2.h>
#pragma comment(lib,"Ws2_32")
WSADATA wsaData;
WORD version=MAKEWORD(2,0);
int ret=WSAStartup(version,&wsaData);
if(ret!=0)
{
MessageBox("Init Error");
return FALSE;
}
------解决方案--------------------
要初始化套接字库
------解决方案--------------------
已经修改了, 发到你邮箱里面了
初始化要初始化套接字库 要在创建套接字之前,是顺序错误导致的
------解决方案--------------------
UINT CMySocket::InitSocket()
{
WORD wVersionRequested;
WSADATA wsadata;
wVersionRequested = MAKEWORD(2,2);
int nErrCode;
nErrCode = WSAStartup(MAKEWORD(2,2),&wsadata);
if (0 != nErrCode)
{
//没有找到可用的套接字
MessageBox(NULL,"没有找到可用的DLL","初始化失败",MB_OK);
}
socket1 = socket(AF_INET,SOCK_DGRAM,0);
ZeroMemory(buf,1024);
sockaddr_in1.sin_addr.s_addr=inet_addr("127.0.0.1");
sockaddr_in1.sin_family=AF_INET;
sockaddr_in1.sin_port=htons((short)8000);
return 0;
}
这是用另一种方法初始化,发送方
下面是接收方
int MySocket::InitSocket()
{
WORD wVersionRequested;
WSADATA wsadata;
wVersionRequested = MAKEWORD(2,2);
int nErrCode;
nErrCode = WSAStartup(MAKEWORD(2,2),&wsadata);
if (0 != nErrCode)
{
//没有找到可用的套接字
//MessageBox(NULL,"没有找到可用的DLL","初始化失败",MB_OK);
}
sockaddr_in1.sin_addr.s_addr=htonl(INADDR_ANY);
sockaddr_in1.sin_family=AF_INET;
sockaddr_in1.sin_port=htons((short)8000);
nClientLen = sizeof(sockaddr_in1);
socket1 = socket(AF_INET,SOCK_DGRAM,0);
bind(socket1,(SOCKADDR*)&sockaddr_in1,nClientLen);
return 0;
}
套接字创建失败怎么办
孙鑫老师的第十五课的视频
中BOOL CChatDlg::InitSocket()
{
m_socket=socket(AF_INET,SOCK_DGRAM,0);
if(INVALID_SOCKET==m_socket)
{
MessageBox("套接字创建失败!");
return FALSE;
}
SOCKADDR_IN addrsock;
addrsock.sin_family=AF_INET;
addrsock.sin_port=htons(5000);
addrsock.sin_addr.S_un.S_addr=htonl(INADDR_ANY);
int retval;
retval=bind(m_socket,(SOCKADDR*)&addrsock,sizeof(SOCKADDR));
if(SOCKET_ERROR==retval)
{
closesocket(m_socket);
MessageBox("绑定失败!");
return FALSE;
}
return TRUE;
}
运行时弹出套接字创建失败 求高手指点
ps:本人用的是MFC
还有用的是校园网
怎么办?
------解决方案--------------------
if(INVALID_SOCKET==m_socket)
{
MessageBox("套接字创建失败!");
return FALSE;
}
这MessageBox后面加以下代码:
int nCodeError=::GetLastError();
CString s;
s.Format("%d",nCodeError);
MessageBox(s,MB_OK);
return false;
//捕捉错误原因!!
------解决方案--------------------
有没有加这段代码啊
#include <Winsock2.h>
#pragma comment(lib,"Ws2_32")
WSADATA wsaData;
WORD version=MAKEWORD(2,0);
int ret=WSAStartup(version,&wsaData);
if(ret!=0)
{
MessageBox("Init Error");
return FALSE;
}
------解决方案--------------------
要初始化套接字库
------解决方案--------------------
已经修改了, 发到你邮箱里面了
初始化要初始化套接字库 要在创建套接字之前,是顺序错误导致的
------解决方案--------------------
UINT CMySocket::InitSocket()
{
WORD wVersionRequested;
WSADATA wsadata;
wVersionRequested = MAKEWORD(2,2);
int nErrCode;
nErrCode = WSAStartup(MAKEWORD(2,2),&wsadata);
if (0 != nErrCode)
{
//没有找到可用的套接字
MessageBox(NULL,"没有找到可用的DLL","初始化失败",MB_OK);
}
socket1 = socket(AF_INET,SOCK_DGRAM,0);
ZeroMemory(buf,1024);
sockaddr_in1.sin_addr.s_addr=inet_addr("127.0.0.1");
sockaddr_in1.sin_family=AF_INET;
sockaddr_in1.sin_port=htons((short)8000);
return 0;
}
这是用另一种方法初始化,发送方
下面是接收方
int MySocket::InitSocket()
{
WORD wVersionRequested;
WSADATA wsadata;
wVersionRequested = MAKEWORD(2,2);
int nErrCode;
nErrCode = WSAStartup(MAKEWORD(2,2),&wsadata);
if (0 != nErrCode)
{
//没有找到可用的套接字
//MessageBox(NULL,"没有找到可用的DLL","初始化失败",MB_OK);
}
sockaddr_in1.sin_addr.s_addr=htonl(INADDR_ANY);
sockaddr_in1.sin_family=AF_INET;
sockaddr_in1.sin_port=htons((short)8000);
nClientLen = sizeof(sockaddr_in1);
socket1 = socket(AF_INET,SOCK_DGRAM,0);
bind(socket1,(SOCKADDR*)&sockaddr_in1,nClientLen);
return 0;
}