0
TCP 소켓이있는 Android 장치 - PC와 통신 중입니다. 성공적으로 서버에 네트워크 패킷을 보냈지 만 서버에서 응답을 받으면 스레드가 원인을 알지 못합니다. 안드로이드 클라이언트 :알 수없는 원인으로 안드로이드 스레드가 멈 춥니 다.
public class ClientThread implements Runnable
{
public void run()
{
try
{
Socket socket = new Socket("192.168.1.12", 4444);
BufferedWriter out = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));
out.write(msg);
out.flush();
Log.v("Naber", "One");
InputStreamReader inputStreamReader = new InputStreamReader(socket.getInputStream());
BufferedReader bufferedReader = new BufferedReader(inputStreamReader); // get the client message
String inMsg = bufferedReader.readLine();
inputStreamReader.close();
Log.v("Naber", "Two");
socket.close();
}
catch (Exception e)
{
Log.v("Hata", e.getMessage());
}
}
}
로그인 자세한 정보 출력 : C 번호와
String inMsg = bufferedReader.readLine();
내 서버 응용 프로그램 : 그것은이 라인에 왔을 때 멈출 않는 이유를 모르겠어요
09-25 22:25:37.163 15351-15532/com.mytracia.kumanda9 V/Naber﹕ One
static void Main(string[] args)
{
TcpListener tcpListener = new TcpListener(IPAddress.Any, 4444);
while (true)
{
tcpListener.Start();
//Program blocks on Accept() until a client connects.
Socket soTcp = tcpListener.AcceptSocket();
Byte[] received = new Byte[1024];
int bytesReceived = soTcp.Receive(received, received.Length, 0);
String dataReceived = System.Text.Encoding.ASCII.GetString(received);
dataReceived = dataReceived.Replace("\0", "");
Console.WriteLine(dataReceived);
String returningString = "Naber1";
Byte[] returningByte = System.Text.Encoding.ASCII.GetBytes(returningString.ToCharArray());
//Returning a confirmation string back to the client.
soTcp.Send(returningByte, returningByte.Length, 0);
tcpListener.Stop();
}
}
당신이 무엇을 의미 했습니까? "\ nNaber1"과 같은 응답 메시지를 보내야합니까? – user1544101
@ user1544101, 편집 된 답변보기 – user3439968
그래, 고마워! – user1544101