서버는 C#으로 작성되었고 C#으로 만든 클라이언트와 올바르게 작동합니다. 이제는 안드로이드 클라이언트를 만들려고하는데 서버가 실제 메시지를 얻지는 않습니다. 물음표. 여기TCP 서버가 ????????를 얻습니다. 실제 메시지 대신에
내가 메시지 "안녕하세요", 서버 인쇄 "를 보낼 경우이 안드로이드 클라이언트 예를 들어
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);
하는 서버
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);
입니다 ???????? ??? " 그리고 그것이 내가 보내는 메시지,
내가이 일하지만 결과 같은 다른 방법으로 시도조차 단 한 편지에 대해 같은 일이 동일합니다
DataOutputStream out = new DataOutputStream(socket.getOutputStream());
out.writeBytes(str);
인코딩 문제가있는 것 같습니다. 서버에서 어떤 인코딩이 설정되어 있는지 확인하십시오. –
Nikita가 무엇을 의미합니까? 나는 PrintStream에서 안드로이드 클라이언트를 바꾸려고했습니다 = 새로운 PrintStream (socket.getOutputStream()); 하지만 여전히 동일한 오류가 발생합니다 – Alessandro
'String str = et.getText(). toString()'. 미리 정의 된 문자열을 사용하는 것이 좋습니다. 그리고 얼마나 많은 바이트가 보내지고 얼마나 많은 바이트가 수신되었는지 알려주십시오. – greenapps