繁体   English   中英

客户端套接字接受的数据与服务器套接字不同

[英]Client Socket Accepted Data is Different From Server Socket

我正在尝试模拟服务器-Java的客户端套接字连接。 我有该代码:

private static Socket clientSocket;
private static PrintWriter pw;
private static Socket serverSocket;
private static final int PORT_NUMBER = 1146;

public static void init() throws IOException {
    ServerSocket sSocket = new ServerSocket(PORT_NUMBER);
    clientSocket = new Socket("localhost", PORT_NUMBER);

    serverSocket = sSocket.accept();
    OutputStream os = serverSocket.getOutputStream();
    pw = new PrintWriter(os, true);
}

private void writePackage(int[] dataPackage) {
    for (int packageByte : dataPackage) {
        pw.write(packageByte);
    }
    pw.flush();

    try {
        InputStream is = clientSocket.getInputStream();
    } catch (IOException e) {
        e.printStackTrace();
    }
}

我的数据包中有十六进制值。 它是127个长度的数组。 当我检查客户端输入流时,我发现只有前26个元素是我编写服务器输出流的元素。 其他人则不同。 即第26个元素是0xC1 ,十进制为193 ,但客户端输入流接受的十进制为196

我想念什么?

您应该使用OutputStream而不是PrintWriter来写入二进制数据。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM