0

由于某些原因,我必须在等待与计算机连接的 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 端口。任何其他应用程序都不会阻塞该端口。

有什么问题?

4

2 回答 2

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");
于 2012-04-26T18:42:58.623 回答
2

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

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

这不太可能,但可能有一些防火墙规则阻止了连接。

于 2012-04-26T18:42:03.513 回答