TCP 服务器得到 ????????而不是真正的消息
TCP Server gets ???????? instead of the real message
服务器是用 c# 编写的,可以与我用 c# 制作的客户端一起正常工作,现在我正在尝试制作一个 android 客户端,但服务器没有得到真正的消息,它只是好多问号。
这是服务器
TcpListener listen = new TcpListener(IPAddress.Any, 1200);
TcpClient client;
listen.Start();
client = listen.AcceptTcpClient();
NetworkStream stream = client.GetStream();
byte[] buffer = new byte[client.ReceiveBufferSize];
int data = stream.Read(buffer, 0, client.ReceiveBufferSize);
string message = Encoding.Unicode.GetString(buffer, 0, data);
Console.WriteLine(message);
这是Android客户
EditText et = (EditText) findViewById(R.id.EditText01);
String str = et.getText().toString()
PrintWriter out = new PrintWriter(new BufferedWriter(
new OutputStreamWriter(socket.getOutputStream())),
true);
out.println(str);
例如,如果我发送消息 "Hello",服务器会打印“??????????????”我发送的任何消息都会发生同样的情况,即使只是 1 个字母
我也尝试过像这样的不同方法,但结果是一样的:
DataOutputStream out = new DataOutputStream(socket.getOutputStream());
out.writeBytes(str);
变化:
string message = Encoding.Unicode.GetString(buffer, 0, data);
进入:
string message = Encoding.UTF8.GetString(buffer, 0, data);
也试试 UTF16
。我认为 java 现在使用这种编码。
服务器是用 c# 编写的,可以与我用 c# 制作的客户端一起正常工作,现在我正在尝试制作一个 android 客户端,但服务器没有得到真正的消息,它只是好多问号。
这是服务器
TcpListener listen = new TcpListener(IPAddress.Any, 1200);
TcpClient client;
listen.Start();
client = listen.AcceptTcpClient();
NetworkStream stream = client.GetStream();
byte[] buffer = new byte[client.ReceiveBufferSize];
int data = stream.Read(buffer, 0, client.ReceiveBufferSize);
string message = Encoding.Unicode.GetString(buffer, 0, data);
Console.WriteLine(message);
这是Android客户
EditText et = (EditText) findViewById(R.id.EditText01);
String str = et.getText().toString()
PrintWriter out = new PrintWriter(new BufferedWriter(
new OutputStreamWriter(socket.getOutputStream())),
true);
out.println(str);
例如,如果我发送消息 "Hello",服务器会打印“??????????????”我发送的任何消息都会发生同样的情况,即使只是 1 个字母
我也尝试过像这样的不同方法,但结果是一样的:
DataOutputStream out = new DataOutputStream(socket.getOutputStream());
out.writeBytes(str);
变化:
string message = Encoding.Unicode.GetString(buffer, 0, data);
进入:
string message = Encoding.UTF8.GetString(buffer, 0, data);
也试试 UTF16
。我认为 java 现在使用这种编码。