繁体   English   中英

android socket DataOutputStream.writeUTF

[英]android socket DataOutputStream.writeUTF

我写套接字客户端:

clientSocket = new Socket("192.168.1.102", 15780);
outToServer = new DataOutputStream(clientSocket.getOutputStream());

一切都有效。 但我不会发送到服务器UTF -8格式的消息,并这样做:

outToServer.writeBytes("msg#");//server tag
outToServer.writeUTF("hello");
//outToServer.writeUTF(str); //or another string
outToServer.writeBytes("\n");
outToServer.flush();

消息变成这样:

秘密字节

请告诉我为什么? 如何正确发送UTF消息?

writeUTF()文档说:

首先,将两个字节写入输出流,就好像通过writeShort方法一样,给出了要遵循的字节数。 该值是实际写出的字节数,而不是字符串的长度。

您可以自己将字符串编码为utf-8,然后使用write()将生成的字节数组发送到服务器:

byte[] buf = "hello".getBytes("UTF-8");
outToServer.write(buf, 0, buf.length);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM