2

プレイヤーの位置 (x, y) をサーバーからクライアントに送信しようとしています。他のすべては機能しているようですが、これらの 2 つの int は機能していません。3456 などの他の整数を送信すると、3456 が受信されます。しかし、これらは機能しません。

サーバー Java コード:


    public void sendAccountInformation() は IOException をスローします {
            dos.write(player.id);
                main.log(player.id);
            dos.println(player.username);
                main.log(プレイヤー.ユーザー名);
            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() は IOException をスローします {
            int id = dis.read();
            main.player = new Player(id, メイン);
                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

ご覧のとおり、2 つの整数 (544 と 384) は (63 と 63) に変更されました。しかし、他のすべてが正しく送信され、受信されますか?

4

1 に答える 1

2

writeInt()readInt()を使用して write と read を試してみるべきだと思いますint

于 2013-07-10T20:57:20.220 に答える