嗨我有一个应用程序,它将文本发送到设备,然后设备在显示器上显示它。用于传输数据我在AsyncTask
类
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();
}
问题是我在发送数据后无法读取套接字的响应。当我从套接字和读取行获取输入流时,我没有得到任何东西,并且设备没有显示我发送的数据,直到我关闭应用程序,所以我认为套接字在我这样做时阻塞
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();
}
如何从套接字发送数据和读取响应?
答案 0 :(得分:0)
您正在尝试与两个(客户端)Socket
进行通信。对于沟通,您必须在一方实施(客户)java.net.Socket
,另一方面实施 java.net.ServerSocket
。
您可以进一步阅读here。
答案 1 :(得分:0)
你想要达到什么目的?
使用InputStream时,它将获取来自另一方的数据,而不是您刚刚发送的数据。
正如SirGregg所说,readLine
将一直挂到收到整条线。