首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何设置源端口号。以十进制形式

如何设置源端口号。以十进制形式
EN

Stack Overflow用户
提问于 2019-05-27 19:42:47
回答 1查看 188关注 0票数 -2

我得到了源端口号。代码中所示的for循环中的十六进制数no。在本例中,源端口为01 bb。我想把它显示为443,也就是十进制如何表示...

代码语言:javascript
复制
printf("\nSource Port Number: ");
a = packet[34];
b = packet[35];
char num[20];
int num3;

strcpy (num, a);
strcat (num, b);
printf("Hexadecimal string %s\n", num);
sscanf(num,"%x", &num3);
printf("Decimal number %d\n", num3);

34和35号显示源端口号的数据包。我已经在wireshark上看到了…我得到的答案是01 bb,但我想得到十进制的结果…

EN

回答 1

Stack Overflow用户

发布于 2019-05-28 02:33:52

您尝试使用sscanf将由libpcap捕获的数据字节'0x01 0xbb‘组成的端口号转换为整数值。这将不起作用,因为sscanf期望端口号为字符串"01bb“。如果你检查sscanf的返回值,我希望它是'0‘,这意味着没有发生任何事情,因为预期的数据格式不匹配。我认为您可以通过使用逐位或和移位来组合数据字节'0x01‘和'0xbb’来设置端口号(重要:字节顺序)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56325392

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档