我目前正在使用接收来自客户端的请求的 UDP 服务器。我收到的数据报是一个 5 个元素长的字节 (char) 数组,最后两个元素是端口号。
最终,该服务器将不得不在自己的数据报中返回 IP 地址和端口号。
我已经知道如何使用 inet_ntop 和我已连接并从中接收到的 sockaddr 结构来打印出 ip,但它返回的字符串不是我想要的格式。例如:
string1 = inet_ntop(their_addr.ss_family,get_in_addr(
(struct sockaddr *)&their_addr),s, sizeof s);
返回:
127.0.0.1
或者:
[1][2][7][.][0][.][0][.][1]
当我需要类似的东西时:
[127][0][0][1]
我应该使用某种字符和数组操作来制作我的 4 元素字节数组吗?或者 sockaddr 是否以某种方式拥有这些信息,我可以将其保留为这种十六进制形式并返回它?