将Java客户端字符串发送到C#服务器

将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

我对网络非常陌生,到目前为止,我已经设法让我的Android应用程序(客户端)连接到我的Unity C#server,但是我有点被Java发送字符串和服务器解码卡住了

C#客户端将读取输入,但当我记录客户端消息时,它是黑色的。因此,我最好的猜测是,问题在于Java字符串编码或解码

让我知道是否有人能发现我的错误,或者是否有人对如何处理作者和读者有更好的建议

非常感谢

java客户端SendMsg线程

 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);