发送整数,收到错误的数据

时间:2013-07-10 20:19:56

标签: java sockets

我正在尝试从服务器向玩家发送玩家的位置(x,y)。其他一切似乎都有效,但不是这两个整体。我可以发送其他整数,例如3456,它将获得3456.但这些都不会工作。

服务器Java代码:



    public void sendAccountInformation() throws IOException {
            dos.write(player.id);
                main.log(player.id);
            dos.println(player.username);
                main.log(player.username);
            dos.write(player.x);
                main.log(player.x);
            dos.write(player.y);
                main.log(player.y);
            dos.write(player.mapid);
                main.log(player.mapid);

            dos.flush();
        }

服务器输出:

0
sdfsdffsd
544
384
0

以上是应该发送的正确信息。

客户端Java代码:



    public void loadAccount() throws IOException {
            int id = dis.read();
            main.player = new Player(id, main);
                main.log(id);

            main.player.username = dis.readLine();
                main.log(main.player.username);

            main.player.x = dis.read();
                main.log(main.player.x);
            main.player.y = dis.read();
                main.log(main.player.y);
            main.player.mapid = dis.read();
                main.log(main.player.mapid);
        }

客户端输出:

0
sdfsdffsd
63
63
0

如您所见,两个整数(544和384)变为(63和63)。但其他所有发送和收到的都是正确的吗?

1 个答案:

答案 0 :(得分:2)

我相信您应该尝试使用writeInt()readInt()来撰写和阅读int