自打包UDP数据包 怎么接收啊? 我自打包了一些UDP数据包发到另一张卡上 直接用recvfrom接收不到呀我用抓包的工具 抓了一下 这里有显示 我的UDP包发到里我要怎么接收下来啊? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 自己本机抓下包,看发送地址和端口号对不对,在本机客户端和服务端测试通信成功,再把服务端和客户端在不同机器上测试的,看是不是防火墙的原因,WINDOWS防火墙也拦截UDP包的。 楼主 我在http://topic.csdn.net/u/20090904/10/93858339-9a86-4a14-9c26-57a8315d00ff.html回复了你的帖子我的分分 原因很简单,你没用写cheksum函数,你算的是0,IP协议默认要比较checksum的,不一致被丢掉了 我加了 校验和函数了 不过还是收不到我把udp的校验值 不赋值还收到一些 貌似不完整 不确定 反正是有反应了 真奇怪校验函数 如下USHORT CheckSum(USHORT *buffer, int size) { unsigned long cksum=0; while(size >1) { cksum+=*buffer++; size -=sizeof(USHORT); } if(size ) { cksum += *(UCHAR*)buffer; } cksum = (cksum >> 16) + (cksum & 0xffff); cksum += (cksum >>16); return (USHORT)(~cksum); } unsigned short UdpCheckSum(const char *pTcpData, const char *pPshData, UINT nTcpCount){ unsigned short sCheckSum = ~CheckSum(pTcpData,nTcpCount); unsigned long checkSum = sCheckSum; checkSum <<= 16; sCheckSum = ~CheckSum(pPshData,12); checkSum += sCheckSum; return CheckSum((char*)&checkSum,4);} WinPcap捕获的数据包如何区分方向? MFC应用程序用NSIS打包,安装后,启动应用程序失败 求CAPP项目开发文档或者相关的开发资料 求游戏资源,包括位图和音乐 用线程从网络上下载数据的问题!望高手指点呀! 如何复用功能模块? 小弟初学 看看有何错误 有人使用 libxml 库来解析 XML 文件吗?想跟你交流一下,谢谢 请教了,请高手指点! 求一例子程序:主工程与DLL模块之间的通信,在线等 回调函数的返回值不同好像没有什么影响? 动态库中如何使用定时器??
http://topic.csdn.net/u/20090904/10/93858339-9a86-4a14-9c26-57a8315d00ff.html
回复了你的帖子
我的分分
我把udp的校验值 不赋值
还收到一些 貌似不完整 不确定 反正是有反应了 真奇怪
校验函数 如下
USHORT CheckSum(USHORT *buffer, int size)
{
unsigned long cksum=0;
while(size >1)
{
cksum+=*buffer++;
size -=sizeof(USHORT);
}
if(size )
{
cksum += *(UCHAR*)buffer;
} cksum = (cksum >> 16) + (cksum & 0xffff);
cksum += (cksum >>16);
return (USHORT)(~cksum);
} unsigned short UdpCheckSum(const char *pTcpData, const char *pPshData, UINT nTcpCount)
{
unsigned short sCheckSum = ~CheckSum(pTcpData,nTcpCount);
unsigned long checkSum = sCheckSum;
checkSum <<= 16;
sCheckSum = ~CheckSum(pPshData,12);
checkSum += sCheckSum; return CheckSum((char*)&checkSum,4);
}