Почему я не могу отправить байтовые данные в приложение Android Socket, но оно отлично работает в c # - PullRequest
0 голосов
/ 08 января 2019

Я создал программу для C # windows, используя сокеты. Я могу отправить эту строку на панель управления, с которой я работаю

socketObject.ReceiveBufferSize = 500;
socketObject.SendBufferSize = 500;
socketObject.Connect("10.10.100.254", 8899);
byte[] msg = Encoding.UTF8.GetBytes("admin" + "\r\n");
socketObject.Send(msg);

это прекрасно работает с использованием C # в приложении Windows. Но я портирую на приложение для Android и не могу заставить это работать

Socket socket = new Socket();
socket.setReceiveBufferSize(5000);
socket.setSendBufferSize(5000);
socket.connect(new InetSocketAddress(InetAddress.getByName(sIP),iPort),1500);
mBufferOut = new PrintWriter(new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())), true);

string message;
message = "admin" + "\\r\\n";
byte[] m = message.getBytes("UTF-8");
mBufferOut.println(m);

Это не работает, и я застрял!

1 Ответ

0 голосов
/ 10 января 2019

Я наконец понял это. Я не уверен, что это лучшее решение, но оно работает!

char CR  = (char) 0x0D;
char LF  = (char) 0x0A;
String s = "admin" + CR + LF;
mTcpClient.sendMessage(s.getBytes(StandardCharsets.UTF_8));
...