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

android线程因未知原因停止

服务器用新行回答?"''n"

public字符串readLine()添加到API级别1返回下一行此读者提供的文本的数量。直线由零或后面跟有'''n'、'''r'''、"''r''n"或读者该字符串不包括换行符序列。

返回行的内容,如果未读取任何字符,则返回null在到达读取器的末尾之前。

尝试:

String returningString = "Naber1'n";