wince下使用raw socket的问题

jiuzhoulh 2009-12-16 11:34:51
哪位大大做过wince5.0下面的原始套接字编程,能不能给我发一个啊。
在vc下面的移到evc4.0下面编译总是出问题啊!
最近需要在wince5.0下面做一个接收网络中所有到达161端口上的数据,原来vc6.0下面能实现,但是移到evc4.0下编译总是有问题!
...全文
186 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
91program 2009-12-16
  • 打赏
  • 举报
回复
把问题贴出来,一起分析

想要现成的,难!
molabo 2009-12-16
  • 打赏
  • 举报
回复
建议到水利出版社下载源码,说得很详细,查找关键字EVC可以找到的
jiuzhoulh 2009-12-16
  • 打赏
  • 举报
回复
源代码是这样的:
#define WSA_FLAG_OVERLAPPED 0x01

#define _WSAIOW(x,y) (IOC_IN|(x)|(y))
#define IOC_VENDOR 0x18000000
#define SIO_RCVALL _WSAIOW(IOC_VENDOR,1)


WORD wVersionRequested;
WSADATA wsaData;
wVersionRequested = MAKEWORD( 2, 2 );
if ( WSAStartup( wVersionRequested, &wsaData ) != 0 )
{
return FALSE;
}

SOCKET sock ;
//sock = WSASocket(AF_INET, SOCK_RAW, IPPROTO_IP, NULL, 0, WSA_FLAG_OVERLAPPED);
sock = socket(AF_INET, SOCK_RAW, IPPROTO_IP);
if( INVALID_SOCKET == sock )
{
AfxMessageBox(L"socket() failed!");
closesocket( sock ) ;
return FALSE;
}
AfxMessageBox(L"socket() success!");

int rcvtimeo = 5000 ; // 5 sec instead of 45 as default
if( setsockopt( sock , SOL_SOCKET , SO_RCVTIMEO , (const char *)&rcvtimeo , sizeof(rcvtimeo) ) == SOCKET_ERROR)
{
closesocket( sock ) ;
return FALSE ;
}

SOCKADDR_IN sa;
DWORD HostNetOrderIP = GetHostNetOrderIP();
if( HostNetOrderIP == 0 )
return FALSE;

sa.sin_family = AF_INET;
sa.sin_port = htons(161);
sa.sin_addr.s_addr= HostNetOrderIP;
if (bind(sock, (PSOCKADDR)&sa, sizeof(sa)) == SOCKET_ERROR)
{
closesocket( sock ) ;
return FALSE;
}

DWORD dwBufferLen[10] ;
DWORD dwBufferInLen= 1 ;
DWORD dwBytesReturned = 0 ;
if( SOCKET_ERROR == WSAIoctl( sock, SIO_RCVALL , &dwBufferInLen,
sizeof(dwBufferInLen), &dwBufferLen, sizeof(dwBufferLen),
&dwBytesReturned , NULL , NULL ) )
{
closesocket( sock ) ;
return FALSE;
}




#include <afxsock.h>
//#include <winsock2.h>
包含#include <winsock2.h>头文件编译通不过

使用#include <afxsock.h>头文件编译可以通过,但是sock创建失败!

请各位大大帮我看看,谢谢了!

19,518

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 嵌入开发(WinCE)
社区管理员
  • 嵌入开发(WinCE)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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