Android::TCP数据包

Android::TCP数据包,android,sockets,tcp,Android,Sockets,Tcp,我正试图在RCON端口上与我的Minecraft服务器通信 不过,我对如何使用套接字和流之类的东西知之甚少。 随便看看,我发现他们都有共同之处。套接字、输入流和输出流 我在我的代码中尝试了它,但是返回的结果没有任何用处。 我知道代码实际上发送了一个数据包,因为我从服务器控制台[Rcon connection from:/1.2.3.4]获得确认 这就是我试图基于interwebs组装的代码,返回类似[B@4053f750来自输出。不知道那是什么,我也不能在谷歌上搜索 有人能提供一个好的网站来解释

我正试图在RCON端口上与我的Minecraft服务器通信

不过,我对如何使用套接字和流之类的东西知之甚少。 随便看看,我发现他们都有共同之处。套接字、输入流和输出流

我在我的代码中尝试了它,但是返回的结果没有任何用处。 我知道代码实际上发送了一个数据包,因为我从服务器控制台[Rcon connection from:/1.2.3.4]获得确认

这就是我试图基于interwebs组装的代码,返回类似[B@4053f750来自输出。不知道那是什么,我也不能在谷歌上搜索

有人能提供一个好的网站来解释这些东西吗

非常感谢

Socket s;
InputStream i;
DataInputStream iD;
OutputStream o;
DataOutputStream oD;

OnClickListener listenA=new OnClickListener(){
    public void onClick(View v){
        try{
            s=new Socket("MyDomain.tld", 12345);
            i=s.getInputStream();
            iD=new DataInputStream(i);
            o=s.getOutputStream();
            oD=new DataOutputStream(o);

            byte[] data=new byte[1024], packet={
                (byte)0xFE, (byte)0xFD, // Magic bytes
                (byte)0x09,                 // Challenge type
                (byte)0xde, (byte)0xad, (byte)0xbe, (byte)0xef  // Your ID token
            };


            o.write(packet);
            i.read(data, 0, 1024);

            guiMain.setTxt_Edit(encodeCArray(data.toString())); // returns a hex string to an edit box. I can then compare the packet to what I expect.

            s.close();
        }catch(UnknownHostException e){
            e.printStackTrace();
        }catch(IOException e){
            e.printStackTrace();
        }
    }
};
请尝试:

guiMain.setTxt_Edit(encodeCArray(new String(data)))

[B@4053f750
是无用的
toString()
字节数组。使用
java.util.Arrays.toString(data)
可以获得更好的输出。您需要检查“i.read(data,0,1024);”的返回,因为如果读取字节,它可能返回不同的量。