Android 试图通过套接字接收文本
我试图做一个简单的测试,将数据发送到一个套接字,然后服务器程序将数据发送回该套接字。我可以发送数据,但似乎没有收到数据。我已经检查了服务器程序,成功接收到数据,并使用wireshark监视流量,服务器程序正在发送数据,但我的客户端无法获取数据。 我隐藏了ip地址和端口,原因很明显Android 试图通过套接字接收文本,android,sockets,Android,Sockets,我试图做一个简单的测试,将数据发送到一个套接字,然后服务器程序将数据发送回该套接字。我可以发送数据,但似乎没有收到数据。我已经检查了服务器程序,成功接收到数据,并使用wireshark监视流量,服务器程序正在发送数据,但我的客户端无法获取数据。 我隐藏了ip地址和端口,原因很明显 Socket echoSocket = null; PrintWriter out = null; BufferedReader in = null; try { /
Socket echoSocket = null;
PrintWriter out = null;
BufferedReader in = null;
try {
//TODO Need filshills public ip address
echoSocket = new Socket("xxxxxx",xx);
} catch (UnknownHostException e) {
System.err.println("Don't know about host.");
} catch (IOException e) {
System.err.println("Couldn't get I/O for "
+ "the connection to host.");
}
PrintWriter pw = new PrintWriter(new BufferedWriter(new OutputStreamWriter(echoSocket.getOutputStream())), true);
//PrintWriter pw = new PrintWriter(echoSocket.getOutputStream(), true);
pw.flush();
pw.print("MS01,test,06,000027,01\r\n");
pw.close();
try{
BufferedReader stdIn = new BufferedReader(new InputStreamReader(echoSocket.getInputStream()));
String check = stdIn.readLine();
check = check + "";
//BufferedReader stdIn = new BufferedReader(new InputStreamReader(System.in));
String userInput;
while ((userInput = stdIn.readLine()) != null) {
out.println(userInput);
System.out.println("echo: " + in.readLine());
stdIn.close();
}
}catch ( Exception e)
{
String neil = e.getMessage();
neil = neil + "";
}
out.close();
in.close();
echoSocket.close();
尝试不关闭
PrintWriter
,根据,close
将关闭套接字:
关闭返回的OutputStream将关闭关联的套接字
您确定服务器在最后发送了/r/n吗?您是否在.close()调用后尝试过执行.flush()?是否。stdIn始终为空。当我调用BufferedReader行开始时,它给了我一个强制关闭错误