android线程因未知原因停止
本文关键字:未知 线程 android | 更新日期: 2023-09-27 18:24:37
我正在用TCP套接字与Android设备-PC通信。我成功地向服务器发送了网络数据包,但当我试图从服务器获得响应时,线程停止了,我不知道原因。Android客户端:
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#的我的服务器应用程序
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();
}
}
服务器用新行回答?"''n"
public字符串readLine()添加到API级别1返回下一行此读者提供的文本的数量。直线由零或后面跟有'''n'、'''r'''、"''r''n"或读者该字符串不包括换行符序列。
返回行的内容,如果未读取任何字符,则返回null在到达读取器的末尾之前。
尝试:
String returningString = "Naber1'n";