吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1082|回复: 5
收起左侧

[求助] udp socket客户端在centos/ubuntu下运行结果不同

[复制链接]
hwl88618 发表于 2021-5-12 11:03
本帖最后由 hwl88618 于 2021-5-12 13:06 编辑

网络编程初学者有点小问题想请教大佬
一段udp客户端代码,在ubuntu下编译运行,结果正常,但是在centos下编译运行,收到的前3或者4个字节会变成0
在64位ubuntu14.04(gcc4.8.4)和64位linux mint 20.1(gcc9.3.0)上测试没有问题,在64位centos7.4(gcc4.8.5),64位centos8.3(gcc8.3.1)和arm32位centos7.8(gcc4.8.5)上,都会有前3或4字节变成0的情况
代码如下
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <sys/socket.h>
#include <unistd.h>

int main()
{
int sockfd, n;
struct sockaddr_in sockAddr;
int optval = 1;
char sendData[] = "send data";
char recvData[16] = {0};

if ((sockfd = socket(AF_INET, SOCK_DGRAM, 0)) < 0)
{
printf("socket error");
return 0;
}

bzero(&sockAddr, sizeof(sockAddr));
sockAddr.sin_family = AF_INET;
sockAddr.sin_port = htons(6666);
sockAddr.sin_addr.s_addr = inet_addr("255.255.255.255");

setsockopt(sockfd, SOL_SOCKET, SO_BROADCAST, &optval, sizeof(optval));

if (sendto(sockfd, sendData, sizeof(sendData), 0, (struct sockaddr *)&sockAddr, sizeof(sockAddr)) < 0)
{
printf("sendto error\n");
close(sockfd);
return 0;
}

char len = sizeof(sockAddr);
if (recvfrom(sockfd, recvData, sizeof(recvData), 0, (struct sockaddr *)&sockAddr, (socklen_t *)&len) <= 0)
{
printf("recvfrom error\n");
close(sockfd);
return 0;
}

printf("recv data: ");
int i;
for (i = 0; i < sizeof(recvData); i++)
{
// 这里是方括号i,52破解把这个东西理解成斜体了
printf("%02X ", recvData);

}
printf("\n");
}
结果如下:
2021-05-12_104048.png

另外试过抓包,能收到完整的包,也把recvfrom改成recv和read试过,这两个都能正常收到和解析,只有recvfrom会有这种情况

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

灵影 发表于 2021-5-12 11:36
我需要你的工具,期待后续。
 楼主| hwl88618 发表于 2021-5-12 11:45
灵影 发表于 2021-5-12 11:36
我需要你的工具,期待后续。

什么工具?上面图里的这个?这是一个网络调试工具,百度找netassist就能下载到
禁闭岛 发表于 2021-5-12 11:51
 楼主| hwl88618 发表于 2021-5-12 11:52
禁闭岛 发表于 2021-5-12 11:51
可以在centos下抓包看看是不是正常的数据

抓过包了,所有数据都能正常收到,现在怀疑recvfrom函数的问题,因为用recv和read也能正常收到和解析数据
shanzicaiyun 发表于 2021-5-13 11:52
学习学习
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-26 02:29

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表