有关套接字???在线 accept(dlg->clisock,(sockaddr*)&(dlg->serv),&(dlg->addlen));/////这一步出错,该从哪些方面解决???用GetLastError所得:错误代码10038 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 socket创建时错误建议创建,绑定,每一步加入异常处理 WSADATA wsaData; struct sockaddr_in dest; struct hostent* hp; DWORD dwVaule = 1; unsigned char LocalName[256] ={""}; int ret; WSAStartup(MAKEWORD(2, 1), &wsaData); TestMode = nMode; if(nMode == 0) { m_Socket = socket(AF_INET,SOCK_RAW,IPPROTO_ICMP); } else { m_Socket = socket(AF_INET,SOCK_RAW,IPPROTO_RAW); } if(m_Socket == INVALID_SOCKET) { GetSnifferException("WSASocket() failed!"); closesocket(m_Socket); return -1; } //设置是否亲自处理报头 //setsockopt(m_Socket,IPPROTO_TCP,IP_HDRINCL,&optval,sizeof(optval)); //得到本机计算机名和ip地址 gethostname((char*)LocalName,sizeof(LocalName) - 1); hp = gethostbyname((char*)LocalName); if(!hp) { GetSnifferException("get localHost failed!"); closesocket(m_Socket); return -1; } //清空结构的数据 memset(&dest,0,sizeof(dest)); if(nMode == 0) { dest.sin_addr.s_addr = inet_addr(IpAddress); } else { dest.sin_addr = *(in_addr*)hp->h_addr_list[0]; } dest.sin_family = AF_INET; dest.sin_port = htons(5000); //绑定socket在一个端口 if(nMode != 0) { ret = bind(m_Socket,(PSOCKADDR)&dest,sizeof(dest)); } if(ret == SOCKET_ERROR) { GetSnifferException("bind() failed!"); closesocket(m_Socket); return -1; } if(nMode != 0) { //设置网卡工作模式为混合工作模式 ret = ioctlsocket(m_Socket,SIO_RCVALL,&dwVaule); if(ret == SOCKET_ERROR) { GetSnifferException("ioctlsocket() failed!"); closesocket(m_Socket); return -1; } } 只要窗口有无效区域,windows就会不停的发送WM_PAINT消息,发送频率是什么呢? debug正常,release时出错的问题 怎么获得右击选中的文件名 翻页的问题还没有解决(大家以后可能经常遇到的问题!!) 怎么看vc补丁的版本? 在vc中怎样得到word关闭、文档内容改变等事件? 还要有关模板的问题? 寻求"Visual C++ 技术内幕(第四版)"附带的光盘里的内容 MFC如果结合了DirectUI的话。。。 大神帮忙看下,怎么做合理 请问各位,如何操作Mfc的文档类,急!进来看看吧,在线等! 我完了,这都不会弄了.
建议创建,绑定,每一步加入异常处理
struct sockaddr_in dest;
struct hostent* hp;
DWORD dwVaule = 1;
unsigned char LocalName[256] ={""};
int ret;
WSAStartup(MAKEWORD(2, 1), &wsaData);
TestMode = nMode;
if(nMode == 0)
{
m_Socket = socket(AF_INET,SOCK_RAW,IPPROTO_ICMP);
}
else
{
m_Socket = socket(AF_INET,SOCK_RAW,IPPROTO_RAW);
}
if(m_Socket == INVALID_SOCKET)
{
GetSnifferException("WSASocket() failed!");
closesocket(m_Socket);
return -1;
}
//设置是否亲自处理报头
//setsockopt(m_Socket,IPPROTO_TCP,IP_HDRINCL,&optval,sizeof(optval));
//得到本机计算机名和ip地址
gethostname((char*)LocalName,sizeof(LocalName) - 1);
hp = gethostbyname((char*)LocalName);
if(!hp)
{
GetSnifferException("get localHost failed!");
closesocket(m_Socket);
return -1;
}
//清空结构的数据
memset(&dest,0,sizeof(dest));
if(nMode == 0)
{
dest.sin_addr.s_addr = inet_addr(IpAddress);
}
else
{
dest.sin_addr = *(in_addr*)hp->h_addr_list[0];
}
dest.sin_family = AF_INET;
dest.sin_port = htons(5000);
//绑定socket在一个端口
if(nMode != 0)
{
ret = bind(m_Socket,(PSOCKADDR)&dest,sizeof(dest));
}
if(ret == SOCKET_ERROR)
{
GetSnifferException("bind() failed!");
closesocket(m_Socket);
return -1;
}
if(nMode != 0)
{
//设置网卡工作模式为混合工作模式
ret = ioctlsocket(m_Socket,SIO_RCVALL,&dwVaule);
if(ret == SOCKET_ERROR)
{
GetSnifferException("ioctlsocket() failed!");
closesocket(m_Socket);
return -1;
}
}