java在ubuntu和windows上处理数据包的方式不同吗

java在ubuntu和windows上处理数据包的方式不同吗,java,ubuntu,openssl,vps,packets,Java,Ubuntu,Openssl,Vps,Packets,我有一个vps,我想在上面安装一个java服务器程序。 它包含ssl,但我相信它不用于java。至少它看起来没有真正加密。 奇怪的是,从ubuntu服务器发送的2个字节被添加了,而我没有指定,一些字节发生了变化。我知道我需要知道为什么它在windows上不这么做,在我的ubuntu vps上也这么做。。。 如果它是不同的,如何解决它 我使用printWriter,然后刷新到客户端。 “ISO8859-1”用于加密数据包,这些数据包不是字符串或数字,只是我发送的普通字节 protected Soc

我有一个vps,我想在上面安装一个java服务器程序。 它包含ssl,但我相信它不用于java。至少它看起来没有真正加密。 奇怪的是,从ubuntu服务器发送的2个字节被添加了,而我没有指定,一些字节发生了变化。我知道我需要知道为什么它在windows上不这么做,在我的ubuntu vps上也这么做。。。 如果它是不同的,如何解决它

我使用printWriter,然后刷新到客户端。 “ISO8859-1”用于加密数据包,这些数据包不是字符串或数字,只是我发送的普通字节

protected Socket socket;
protected BufferedReader socketIn;
protected PrintWriter socketOut;
protected LoginServer server;

public static final byte[] LOGIN_SUCCESSBYTE = {(byte)0x01, (byte)0x00, (byte)0x00, (byte)0x00,         (byte)0x00, (byte)0x01, (byte)0xFF, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00};

this.socketOut.write(new String(LoginServer.LOGINHEADER, "ISO8859-1"));
this.socketOut.flush();
this.socketOut.write(new String(LoginServer.LOGIN_SUCCESSBYTE,"ISO8859-1"));
this.socketOut.flush();
windows发送的数据包
00000000 EC 2C 4A 00 01 00 02 00 00 FF 00 00,J
00000010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........
00000020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........
00000030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........
00000040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ......

ubuntu发送的数据包
00000000 C3 AC 2C 4A 00 01 00 02 00 00 C3 BF 00 00,J
00000010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........
00000020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........
00000030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........

00000040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........

String
不是二进制数据的容器,
Writer
用于字符数据,而不是二进制数据。只需使用
OutputStream
直接写入字节,而不是
编写器
。Java根本不处理数据包,更不用说不同,但它在不同的平台上有不同的默认字符编码。

请给我们展示代码。请包含显示这种行为的代码。这不是我希望找到的,因为我需要更改代码中的许多内容。基本上还是修好了。需要完成,所以如果我完成了所有的工作,我会标记这一个回答。