嗨我有一个应用程序发送文本到设备,设备显示它在显示器上。在一个AsyncTask
类readLine套接字输入流导致在套接字挂起
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();
}
如何发送数据并从套接字读取响应?
不是很确定问题是什么,但readLine()被认为是挂起 - 直到一行实际上由另一端发送(或直到连接超时或断开)。我建议尝试使用netcat发送相同的消息并查看是否得到响应 - 这可能是服务器而不是客户端的问题。 – SirGregg
服务器收到我刚刚发送的数据后向我发送'OK',那么我该怎么办? @SirGregg –