Android :: TCP数据包

时间:2012-05-18 04:32:28

标签: android sockets tcp

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

我不知道如何使用插座和放大器。虽然流的东西。 四处寻找,我发现它们都有一些共同之处。 Socket,InputStream&输出流。

我在我的代码中尝试过,但返回没有任何用处。 我知道代码实际上发送了一个数据包,因为我从服务器控制台 [来自:/1.2.3.4的Rcon连接] 得到确认。

它只是我试图基于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();
        }
    }
};

1 个答案:

答案 0 :(得分:2)

尝试改为:

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