无法打开输出流

时间:2012-04-26 18:31:27

标签: java android stream serversocket

由于某些原因,我必须在android SocketServer上设置等待与计算机的连接。一切顺利,客户端(计算机)正在创建套接字,但流不会打开。它只是暂停而没有任何错误或消息。

客户端:

        s = new Socket(ip, 4567);
        ois = new ObjectInputStream(s.getInputStream());
        System.out.println("ois..");// not showing, so can't open input stream
        oos = new ObjectOutputStream(s.getOutputStream());
        System.out.println("oos..");  // same here

服务器:

        socket = new ServerSocket(4567);
        System.out.println("Waiting for connection,,"); // showing
        client = socket.accept();
        System.out.println("Connected"); //showing
        ois = new ObjectInputStream(client.getInputStream());

        System.out.println("ois.."); // not showing
        oos = new ObjectOutputStream(client.getOutputStream());
        System.out.println("oos.."); // not showing too
        System.out.println("Stream,s opened");

我的apk有INTERNET预设。我正在使用4567端口。任何其他应用程序都不会阻止端口。

有什么不对?

2 个答案:

答案 0 :(得分:3)

首先尝试在服务器中打开ObjectOutputStream。

    socket = new ServerSocket(4567);
    System.out.println("Waiting for connection,,"); // showing
    client = socket.accept();
    System.out.println("Connected"); //showing
    oos = new ObjectOutputStream(client.getOutputStream());
    ois = new ObjectInputStream(client.getInputStream());
    System.out.println("Stream,s opened");

答案 1 :(得分:2)

我没有看到任何超时,这就是它停止的原因。

可能存在一些网络问题;你验证了设备的IP地址是否正确?

这不太可能,但可以成为阻止连接的防火墙规则。