我通过套接字发送的int值与接收到的int值(Java)不同

问题描述 投票:0回答:1

我通过执行以下操作,在使用JDK8在android studio项目上运行的套接字的输出流上发送2个int值:

        try {
            System.out.println("AFTER THREAD START");
            System.out.println("WRITE AGE : " + age + " WRITED SEX : " + sex);
            output_stream_request.writeInt(age);
            output_stream_request.writeInt(sex);
            output_stream_request.flush();
            System.out.println("WRITE AGE : " + age + " WRITED SEX : " + sex);
        } catch (IOException e) {
            e.printStackTrace();
        }

并且我通过使用JDK8在一个蚂蚁项目上通过输入来接收它们:

try {
            System.out.println("BEFORE_READ");
            boolean valid_data = false;
            int age = 0;
            int sex = 0 ;

            age = connector.get_dis_request().readInt();
            sex = connector.get_dis_request().readInt();
            System.out.println("AGE : " + age + " SEX : " + sex );

我用不同的值执行了很多次,并且得到了这些结果:

发送:年龄:50性别:200// 接收 :年龄:-1174405120性别:838860800

发送:年龄:50性别:201//正在接收(与上面相同):年龄:-1174405120性别:838860800

发送:年龄:2性别:200// 接收 :年龄:-1174405120性别:33554432

发送:年龄:2性别:201//正在接收(与上面相同):年龄:-1174405120性别:33554432

请注意,收到的年龄值永远不会改变而接收到的性别可能与作为其变化值发送的年龄值有关。我在打印完之后用调试器检查了该值,它们是相同的,因此不是打印问题。

java sockets integer inputstream outputstream
1个回答
0
投票

使用简单的.write()和.read()解决了我的问题。

© www.soinside.com 2019 - 2024. All rights reserved.