网络编程时,为什么只需要ip和port需要转换字节序,发送的数据不需要?

int_a_0 2016-04-16 08:12:24
网络编程时,为什么只需要ip和port需要转换字节序,发送的数据不需要?如果客户端是小端,服务器是大端,是否会有问题?
...全文
630 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
网络字节序永远是大端字节序。 应用层数据是否需要转换,取决于双方的约定。
土著巫师 2016-04-25
  • 打赏
  • 举报
回复
1、只要在异构平台上传输数据都要进行大小端转换,唯一例外传输单字节字符/串不需要转换; 2、通讯中如何转换取决于实现本身,程序员实现统一大转小也可以,小转大也可以,服务端和客户端匹配上就行; 3、一般设定一个服务器平台,比如WINDOWS平台(在这个平台上的short、int这些数据类型不转换直接发送),而针对不同于WINDOWS平台的异构平台,比如LINUX,对接收到数据或发送的数据统一转换成WINDOWS平台可识别的格式。当然你也可以网上找一些三方开源库,里面有一些代码通过宏定义进行大小端转换。
int_a_0 2016-04-16
  • 打赏
  • 举报
回复
再追加几点疑问: 1、如果客户端是小端,服务器是大端,那么我发送数据(不是端口和ip)到服务器之前,是否要转换数据的字节序,如果不需要,是底层帮我们自动转换了还是本身就不需要转换? 2、如果服务器是大端的,客户端可能是大小端,那么服务器发送前要转成大端还是小端? 3、如果要自己编写服务器客户端程序,且两端都需要适应大小端的不同机器,应该怎么处理?

1,317

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder 网络及通讯开发
社区管理员
  • 网络及通讯开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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