试图通过套接字接收文本

时间:2011-10-01 15:02:27

标签: android sockets

我正在尝试做一个简单的测试,将数据发送到套接字,然后服务器程序将数据发回。我可以发送数据,但似乎没有收到数据。我检查了服务器程序并成功接收数据并使用wireshark来监视流量,服务器程序正在发送数据但我的客户端无法获取数据。 我出于显而易见的原因隐藏了IP地址和端口。

    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();

1 个答案:

答案 0 :(得分:2)

尝试不关闭PrintWriter,根据getOutputStreamclose会关闭套接字:

  

关闭返回的OutputStream将关闭相关的套接字。

相关问题