Java socket 在linux 跟windows下的区别

Java socket 在linux 和windows下的区别
最近用socket 写文件传输程序,自定义了传输数据包协议,测试时windows下运行发送客户端,linux下运行接收服务器,文件传输正常。但是在linux运行发送,windows运行接收端,出现数据错误。接到的数据包总是多几个字节,和协议不一致,求解????
------解决思路----------------------
1>WINDOWS的结构体是讲字节对齐的,同样的成员变量,不同位置是不一样的,当然你也可以用宏定义紧凑,但JAVA端就费劲了,不同类型最好连在一块
2>WINDOWS的SOCKET和JAVA的socket解析整型的确是不一样的,分高低位,他们是相反的