传输的数据为什么不需要主机字节序到网络字节序的转换却能正确传输?
2 回答
临摹微笑
TA贡献1982条经验 获得超2个赞
IP/PORT转换是因为TCP/IP协议规定用网络字节序,你用人家的东西,自然要按别人的规矩办事~你传输的数据收发处理都是你自己做的,你想转字节序就转,不想转也没人强迫你~但是通常建议是统一都转成网络序,接口确定大家好办事嘛.假如是多人开发一个项目,别人发的数据转成网络序了,你收到后不再转成主机序,导致数据解不出来,你说怪谁?
长风秋雁
TA贡献1757条经验 获得超7个赞
好问题。答复是:因为内容是二进制流,不是整数。整数(int、uint16、uint32)的表达,是需要多字节的,在不同cpu上,字节次序是不同的。因此,从A主机到B主机,如果是异构的,就需要做字节调整。同构是不需要的。然后网络就是如此,你不能约定对方的主机类型,因此,干脆都转。内容的表达,就是二进制流,在不同类型的主机上并无差别,如何解释,应用自行决定。故而不必转。
添加回答
举报
0/150
提交
取消
