Unhandled exception at 0x0041ad9c in Spider.exe: 0xC0000005: Access violation writing location 0x00000000

dz999n999 2003-10-19 08:26:32
int CDzSocket::InitializeSocket(WORD sockver, int port)
{
WSADATA wsadata;
if(WSAStartup(sockver,&wsadata)!=0)
{
return WSAGetLastError();
}
if(LOBYTE(wsadata.wVersion)!=LOBYTE(sockver)||
HIBYTE(wsadata.wVersion)!=HIBYTE(sockver))
{
WSACleanup();
return WSAGetLastError();
}

int err;

m_socket = socket(AF_INET,SOCK_RAW,IPPROTO_IP);//总说此处有错:(Unhandled exception at 0x0041ad9c in Spider.exe: 0xC0000005: Access violation writing location 0x00000000.)
if(m_socket==INVALID_SOCKET)
return WSAGetLastError();

char name[MAX_HOSTNAME_LEN];
err = gethostname(name, MAX_HOSTNAME_LEN);
if(err==SOCKET_ERROR)
return WSAGetLastError();

struct hostent FAR * pHostent;
pHostent = gethostbyname(name);

SOCKADDR_IN sa;
sa.sin_family = AF_INET;
sa.sin_port = htons(port);
memcpy(&sa.sin_addr.S_un.S_addr, pHostent->h_addr_list[0], pHostent->h_length);

err = bind(m_socket, (PSOCKADDR)&sa, sizeof(sa));
if(err==SOCKET_ERROR)
return WSAGetLastError();

BOOL bopt=TRUE;
err = setsockopt(m_socket, SOL_SOCKET, SO_REUSEADDR, (char*)&bopt, sizeof(bopt));

bopt = TRUE;
err = setsockopt(m_socket, IPPROTO_IP, IP_HDRINCL, (char*)&bopt, sizeof(bopt));
if(err==SOCKET_ERROR)
{
return WSAGetLastError();
}

// Set this option to receive all the IP packets.
DWORD dwBufferLen[10];
DWORD dwBufferInLen = 1;
DWORD dwBytesReturned = 0;
err = WSAIoctl(m_socket,
SIO_RCVALL,
&dwBufferInLen,
sizeof(dwBufferInLen),
dwBufferLen,
sizeof(dwBufferLen),
&dwBytesReturned,
NULL,
NULL);
if(err==SOCKET_ERROR)
return WSAGetLastError();
return 0;
}

(Unhandled exception at 0x0041ad9c in Spider.exe: 0xC0000005: Access violation writing location 0x00000000.)请教高手,如何解决,总分100
...全文
339 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
天限天空 2003-10-20
  • 打赏
  • 举报
回复
0xC0000005

很明显是 对空指针进行了操作,在程序开始置 pXXX = NULLL, 在有指针操作前都加 ASSERT(pXXX);

fantiyu 2003-10-20
  • 打赏
  • 举报
回复
写了空指针
zhang_zhibin 2003-10-19
  • 打赏
  • 举报
回复
跟踪一下也找不到吗?
pinghell 2003-10-19
  • 打赏
  • 举报
回复
兄弟,我把你的代码编译了一下,没有错误啊
Unhandled exception at 0x0041ad9c in Spider.exe: 0xC0000005: Access violation writing location 0x00000000
从你的错误代码看应该不是
socket(AF_INET,SOCK_RAW,IPPROTO_IP)
这个的原因,这句是正确的
从Spider.exe这里找找原因.

18,356

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧