Android socket客户端没有

2024-04-18 15:44:47 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图像这样创建一个到python服务器的socket客户机连接,但是它给我带来了一个错误。这是通过一个按钮触发的。服务器运行在RPi上,但这不是问题所在,因为Python客户机可以在我的PC上运行

try {

        Socket s = new Socket("192.168.178.43", 24069);
        InputStreamReader streamReader = new InputStreamReader(s.getInputStream());
        BufferedReader reader = new BufferedReader(streamReader);

        String advice = reader.readLine();
        reader.close();

    } catch (UnknownHostException e) {
        System.err.println("Unknown Host.");
        // System.exit(1);
    } catch (IOException e) {
        System.err.println("Couldn't get I/O for "
                + "the connection.");
        System.err.println(e);
        //  System.exit(1);
    }

堆栈跟踪:

^{pr2}$

Tags: 服务器new客户机错误exitsocketsystemreader
1条回答
网友
1楼 · 发布于 2024-04-18 15:44:47

您不能在主UI线程上执行任何长时间的进程这是为了避免操作失败时应用程序崩溃

试着创建一个新的线程,并在里面做你的工作,如果你想把任何结果传递给你不能使用的用户界面

View.Post()



^{pr2}$

这是一个示例,说明您可以做什么,也可以使用asynctask来代替

new Thread(new Runnable() {
        public void run() {
           try {

        Socket s = new Socket("192.168.178.43", 24069);
        InputStreamReader streamReader = new InputStreamReader(s.getInputStream());
        BufferedReader reader = new BufferedReader(streamReader);

        String advice = reader.readLine();
        reader.close();

    } catch (UnknownHostException e) {
        System.err.println("Unknown Host.");
        // System.exit(1);
    } catch (IOException e) {
        System.err.println("Couldn't get I/O for "
                + "the connection.");
        System.err.println(e);
        //  System.exit(1);
    }

        }
    }).start();

相关问题 更多 >