1
我正尝试与RCON端口上的我的Minecraft服务器进行通信。Android :: TCP包
我有一点线索如何使用插槽&流的东西虽然。 扯开,我发现他们都有一些共同点。 Socket,InputStream & OutputStream。
我在我的代码中试过了,但返回时没有任何用处。 我知道代码实际上发送了一个数据包,因为我从服务器控制台[Rcon连接来自:/1.2.3.4]得到确认。
它只是我试图根据interwebs组装的代码返回类似于[B @ 4053f750 from output。不知道那是什么,也不能在Google中搜索它。
有人可以给一个很好的网站来解释这个东西吗?
谢谢你一堆。
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();
}
}
};
'[B @ 4053f750'是一个字节数组的无用'的toString()'。使用'java.util.Arrays.toString(data)'有更好的输出。 – Jerome
您需要检查“i.read(data,0,1024);”因为如果读取字节它可能返回不同的数量。 –