首页 > 解决方案 > 为什么我不能将字节数据发送到 Android Socket 应用程序,但它在 c# 中效果很好

问题描述

我使用套接字创建了一个 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);

这在 Windows 应用程序中使用 C# 非常有效。但我正在移植到 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);

这不起作用,我被困住了!

标签: c#androidsocketsip

解决方案


我终于弄明白了。我不确定它是否是最好的解决方案,但它有效!

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

推荐阅读