请问,我编了一个数据包扑获的程序,在window 2000或是2003下均能扑获到数据包,可是在XP系统下就不好使
下面的语句总是返回SOCKET_ERROR错误代码,
int ret = recv(pMoniter->sock,recvBuff, sizeof(recvBuff), 0);
用WSAGetLastError(),得到的错误代码为10060,连接超时
请问,这是什么原因呀.为什么只在xp系统下出现这个问题?
下面的语句总是返回SOCKET_ERROR错误代码,
int ret = recv(pMoniter->sock,recvBuff, sizeof(recvBuff), 0);
用WSAGetLastError(),得到的错误代码为10060,连接超时
请问,这是什么原因呀.为什么只在xp系统下出现这个问题?
解决方案 »
- 各位大哥大姐,小弟紧急求助!局域网问题
- c++builder中有这么一段程序,在cb下可以通过,在vc下如何修改通过?
- 关于SetTime的问题!!!!!!
- 麻烦大连地区的VC程序员 有知道公司那边派去日本 到底怎么样呢?? 有知道的吗
- win32静态连接库中如何加载其他的lib库
- ado方式无法连接sql server数据库
- CreateBitmap到底怎么用的?100分
- 如何扫描UDP端口,请高手指教!!!!
- 那位大虾能提供一下,能够删除硬盘上指定或者任意文件的代码?!调试过的两位大虾,每人50分相谢!!
- 大家帮我看看这段代码哪里错了??简单的很
- 关于MFC宏:AFX_MANAGE_STATE(AfxGetManageState())
- 谁能解释一下__declspec关键字的用法和作用
现在只能在2000的系统下,程序才能正常工作.
下面是实现扑获所有经过网卡的数据包的语句
#define SIO_RCVALL _WSAIOW(IOC_VENDOR,1) //混杂模式 DWORD dwBufferLen[10] ;
DWORD dwBufferInLen= 1 ;
DWORD dwBytesReturned = 0 ;
if(WSAIoctl(sock,SIO_RCVALL,&dwBufferInLen,sizeof(dwBufferInLen),&dwBufferLen,sizeof(dwBufferLen),
&dwBytesReturned,NULL,NULL)!=0)
{
error=WSAGetLastError();
sprintf(errbuf,"wsaioctl() error:%d",error);
m_sError=errbuf;
return false;
}
请高手帮个忙,谢谢.为什么会出现这个问题