linux 下和windows下数据内存结构有区别么?
比如我能直接把一个windows下的int或其它类型的基本数据通过网络传递给linux使用么?
windows:
int a = 1234;
float f = 1234.555;
char str[100];
send(socket, (const char*)&a, sizeof(int), 0);
send(socket, (const char*)&f, sizeof(float), 0);
send(socket, str, 100, 0);
linux:
int a = 0;
float f = 0;
char str[100];
recv(socket, (char *)&a, sizeof(int), 0);
recv(socket, (char *)&f, sizeof(float), 0);
recv(socket, str, 100, 0);
[解决办法]
字节序是不是要考虑下?windows是低位放在低地址,如果数据这样发出去了,其他os收到后,采用高位存放低地址的方式来解析数据,应该就会出错了。所以数据最好都统一成网络字节序吧.
[解决办法]
Window-------NetWork-----------Linux
所以,windows和linux各自管好和network通讯的事情就行了,其他的不用管.
[解决办法]
同意ls的,在网络中传输,为了不同的系统的大端小端的问题,统一采用网络字节顺序(这个是标准的表示,具体是大是小记不清了,反正是大和小中的一种),系统接收后再根据自己的系统存储形式,转化为大端或小端
[解决办法]
大端小端是硬件的事情, 和操作系统有什么关系?
[解决办法]