Я пытаюсь установить связь с моим сервером Minecraft на порте RCON.Android :: TCP-пакеты
У меня есть небольшая подсказка, как использовать розетки & поток материала. Сотрясаясь, я обнаружил, что все они имеют что-то общее. Socket, InputStream & OutputStream.
Я попробовал это в своем коде, но возврат ничего полезного не говорит. Я знаю, что код действительно отправляет пакет, потому что я получаю подтверждение с консоли сервера [Rcon-соединение из: /1.2.3.4].
Его просто код, который я пытался собрать на основе межотраслевых функций, возвращает что-то вроде [B @ 4053f750 с выхода. Не знаю, что это такое, и я не могу найти его в 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);» поскольку при чтении байтов он может возвращать различную сумму. –