为什么我发的UDP包总是返回端口不可达的ICMP包啊?

dancetime 2003-11-06 03:12:54
会有些什么原因引起这个问题呢?
...全文
581 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
dancetime 2003-11-06
  • 打赏
  • 举报
回复
多谢多谢!问题解决了。分全给你了。
chenwhenlong 2003-11-06
  • 打赏
  • 举报
回复
默认是按 4 字节对齐,因此是 16 个字节。

#pragma pack(push, 2) // 按 2 字节对齐
/* 或 #pragma pack(push, 1) // 按 1 字节对齐 */

typedef struct USERDATA
{
short packtype;
int sendid;
int exip;
int inip;
}USERDATA,*p1;

#pragma pack(pop) // 恢复原来的字节对齐模式

返回的就是如你所说的 14 个字节
dancetime 2003-11-06
  • 打赏
  • 举报
回复
另外,我是用SendTo发送数据的。数据是我自己定义的一个结构

typedef struct USERDATA
{
short packtype;
int sendid;
int exip;
int inip;
}USERDATA,*p1;

抓包发现这个数据部分是16个字节。难道不是2+4+4+4=14字节的吗?


18,363

社区成员

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

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