首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >套接字输入流的readLine导致套接字挂起

问套接字输入流的readLine导致套接字挂起
EN

Stack Overflow用户
提问于 2017-07-27 00:38:30
回答 2查看 312关注 0票数 0

嗨,我有一个向设备发送文本的应用程序,设备将其显示在显示器上。为了传输数据,我在AsyncTask类中使用socket

代码语言:javascript
复制
            try {
                Socket socket = new Socket(DISPLAY_IP, DISPLAY_PORT);
                OutputStream out = socket.getOutputStream();
                PrintWriter output = new PrintWriter(out);
                output.println(params[0]);
                output.flush();
                socket.close();
            } catch (Exception e) {
                e.printStackTrace();
            }

问题是我无法在发送数据后从套接字读取响应。当我从套接字和读取行获得输入流时,我什么也得不到,设备直到我关闭应用程序才会显示我发送的数据,所以我认为当我这样做的时候套接字阻塞了

代码语言:javascript
复制
           try {
                Socket socket = new Socket(DISPLAY_IP, DISPLAY_PORT);
                OutputStream out = socket.getOutputStream();
                PrintWriter output = new PrintWriter(out);
                output.println(params[0]);
                output.flush();
                BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(socket.getInputStream()));
                String response = bufferedReader.readLine();
                socket.close();
            } catch (Exception e) {
                e.printStackTrace();
            }

如何从套接字发送数据和读取响应?

EN

回答 2

Stack Overflow用户

发布于 2017-07-27 00:53:47

您正在尝试与两个(客户端)Socket进行通信。要进行通信,您必须在一端实现一个(客户端) java.net.Socket,在另一端实现一个java.net.ServerSocket.

你可以阅读更多的here。

票数 0
EN

Stack Overflow用户

发布于 2017-07-27 00:55:01

你想要达到什么目的?当使用InputStream时,它将获得来自另一端的数据,而不是您刚刚发送的数据。正如SirGregg所说,readLine将挂起,直到收到整个线路。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45332836

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档