小编cam*_*nd4的帖子

Java向Minecraft服务器发送握手数据包

我一直在研究一个基本上像Minechat(基于文本的应用程序,只是查看聊天)的java程序.我从来没有真正使用过网络,所以问题是弄清楚如何正确发送数据包.我目前处于与服务器创建握手的位置.经过几个小时的研究,我提出了以下代码,但它总是遇到"Failed!(Exception)"消息.对我而言,一切看起来都是正确的,但据我所知,这可能是100%错误的.如果有人能指出我在这里做错了什么,我真的很感激.

作为参考,随意使用这个这个.

public static void main(String[] args) throws IOException {
    host = new InetSocketAddress("162.244.165.111", 48040);
    socket = new Socket();
    System.out.println("Connecting...");
    socket.connect(host, 3000);
    System.out.println("Done!");
    System.out.println("Making streams...");
    output = new DataOutputStream(socket.getOutputStream());
    input = new DataInputStream(socket.getInputStream());
    System.out.println("Done!");
    System.out.println("Attempting handshake... "+host.getAddress().toString().substring(1));
    byte[] msg = ("47;"+host.getAddress().toString().substring(1)+";"+host.getPort()+";2;").getBytes(Charset.forName("UTF-16"));
    output.writeInt(msg.length+Integer.valueOf(0x00));
    output.writeByte(0x00);
    output.write(msg);
    output.flush();
    try {
        if (input.readByte() != 0x02)
            System.out.println("Failed!");
        else
            System.out.println("Done!");
    } catch (EOFException e) {
        System.out.println("Failed! (Exception)");
    }
}
Run Code Online (Sandbox Code Playgroud)

编辑:更多的研究表明我使用字节数组,但这让我对如何表示字符串和使用字符串感到困惑?

java network-programming packets minecraft

4
推荐指数
1
解决办法
4962
查看次数

Firebase的内置身份验证是否可以在第三方服务器上使用?

我正在寻找为我正在创建的游戏创建游戏服务器后端.我们目前正在使用Firebase处理数据和广告,Firebase内置了身份验证功能.是否可以让用户通过Firebase的auth系统登录我们的应用程序,然后在他们连接到游戏服务器时确认用户的身份验证,以确保他们是谁?

基本上,在有人登录我们的firebase之后,我们是否可以将该身份验证信息用于单独的服务器,以及需要使用哪种协议/方法(如果有特定的协议/方法)

authentication backend firebase-authentication

3
推荐指数
1
解决办法
1023
查看次数