Java android线程因未知原因停止
我正在用TCP套接字与Android设备PC通信。我成功地向服务器发送了网络数据包,但当我尝试从服务器获取响应时,线程停止,我不知道原因。 Android客户端:Java android线程因未知原因停止,java,c#,android,multithreading,tcp,Java,C#,Android,Multithreading,Tcp,我正在用TCP套接字与Android设备PC通信。我成功地向服务器发送了网络数据包,但当我尝试从服务器获取响应时,线程停止,我不知道原因。 Android客户端: public class ClientThread implements Runnable { public void run() { try { Socket socket = new Socket("192.168.1.12", 4444);
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());
}
}
}
日志详细输出:
09-25 22:25:37.163 15351-15532/com.mytracia.kumanda9 V/Naber﹕ One
我不知道它为什么停在这条线上:
String inMsg = bufferedReader.readLine();
我的服务器应用程序与C#
服务器用新行应答?“\n” API级别1中添加的公共字符串readLine()返回下一行 此读者提供的文本数量。直线由零或零表示 后面跟有“\n”、“\r”、“\r\n”或结尾的更多字符 读者。该字符串不包括换行符序列 返回行的内容,如果未读取任何字符,则返回null 在到达读取器的末尾之前 尝试:
你什么意思?我需要发送一条响应消息,如“\nNaber1”@user1544101,不客气。我以前曾多次用多种语言口吃过这句“新台词”)
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();
}
}
String returningString = "Naber1\n";