将Java客户端字符串发送到C#服务器
我对网络非常陌生,到目前为止,我已经设法让我的Android应用程序(客户端)连接到我的Unity C#server,但是我有点被Java发送字符串和服务器解码卡住了 C#客户端将读取输入,但当我记录客户端消息时,它是黑色的。因此,我最好的猜测是,问题在于Java字符串编码或解码 让我知道是否有人能发现我的错误,或者是否有人对如何处理作者和读者有更好的建议 非常感谢 java客户端SendMsg线程将Java客户端字符串发送到C#服务器,java,c#,sockets,unity3d,serversocket,Java,C#,Sockets,Unity3d,Serversocket,我对网络非常陌生,到目前为止,我已经设法让我的Android应用程序(客户端)连接到我的Unity C#server,但是我有点被Java发送字符串和服务器解码卡住了 C#客户端将读取输入,但当我记录客户端消息时,它是黑色的。因此,我最好的猜测是,问题在于Java字符串编码或解码 让我知道是否有人能发现我的错误,或者是否有人对如何处理作者和读者有更好的建议 非常感谢 java客户端SendMsg线程 import android.os.AsyncTask; import android.uti
import android.os.AsyncTask;
import android.util.Log;
import java.io.DataOutputStream;
import java.net.Socket;
public class SendMsgToServer extends AsyncTask<Socket, Void, Void> {
@Override
protected Void doInBackground(Socket... sockets) {
Socket client = sockets[0];
//Check Connection is established
if (client.isConnected()){
try {
String msgToServer = "Pleasure doing business";
DataOutputStream data = new DataOutputStream(client.getOutputStream());
data.writeUTF(msgToServer);
// Source: http://stackoverflow.com/questions/11154367/socket-java-client-c-sharp-server
// PrintWriter outputMsg = new PrintWriter(new BufferedWriter(new OutputStreamWriter(client.getOutputStream())), true);
// outputMsg.write("Message to the Server.");
Log.d("Server", data.toString());
} catch (Exception e) {
e.printStackTrace();
}
} else {
Log.d("Server", "Server Connection is not established");
}
return null;
}
}
结果发现我缺少这一行代码:
string mess = System.Text.Encoding.UTF8.GetString(buff);
writeSocket方法使用ASCII编码?其他一切都使用UTF8。确保所有流也使用UTF8编码。
string mess = System.Text.Encoding.UTF8.GetString(buff);