Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android for TCP服务器中的套接字stop t socket.accept()_Android_Sockets - Fatal编程技术网

Android for TCP服务器中的套接字stop t socket.accept()

Android for TCP服务器中的套接字stop t socket.accept(),android,sockets,Android,Sockets,我尝试在Android手机上创建一个简单的TCP服务器,并等待客户端。 我只想实现TCPServer和Client之间的连接,它不需要传输任何数据 我有另一个客户端应用程序,它用来连接到这个TCPServer。 TCPServerthread的代码如下所示 private class TCPServerThread implements Runnable { @Override public void run() { // TODO

我尝试在Android手机上创建一个简单的TCP服务器,并等待客户端。 我只想实现
TCPServer
Client
之间的连接,它不需要传输任何数据

我有另一个客户端应用程序,它用来连接到这个
TCPServer
TCPServerthread
的代码如下所示

private class TCPServerThread implements Runnable
    {
        @Override
        public void run() {
            // TODO Auto-generated method stub

            try {
                ServerSocket serverSocket = new ServerSocket(PORT);

                //while loop
                while (true) {
                    Log.i(TAG, "TCPServerThread...while loop");
                    try {
                        Socket socket = serverSocket.accept();
                        Log.i(TAG, "TCPServerThread...socket.getInetAddress() = " + socket.getInetAddress());
                    } catch (Exception e) {
                        // TODO: handle exception
                        e.printStackTrace();
                        Log.i(TAG, "First IOException");
                    }
                }
                //while loop end

            } catch (Exception e) {
                // TODO: handle exception
                //e.printStackTrace();
                Log.i(TAG, "Second IOException");
            }
        }
    }
但它似乎停留在
Socket=serverSocket.accept()客户端
尝试连接到此服务器时,code>不会显示
TCPServerThread…socket.getInetAddress()=
的日志

我是否缺少
TCPServer
的某些内容?

这是否意味着当代码停在
Socket=serverSocket.accept()时,客户端没有连接到服务器??

------------------------------------编辑------------------------------------------

更新流程

服务器(Android手机)
打开
WiFi热点
,它也会像上面的代码一样打开
TCP服务器

客户端
连接到
WiFi热点
后,
客户端
服务器
位于同一网络中

客户端
将获得网关的
IP地址
客户端
尝试通过
TCP
连接到网关的
IP地址


因此,
连接端口
服务器地址
对于
客户端
来说似乎是正确的。您的代码是正确的,但似乎没有人连接到您的TCPserver。 为了避免在服务器上出现这种阻塞情况

     Socket socket = serverSocket.accept();
声明套接字时,必须为其设置超时选项

     serverSocket.setSoTimeout(mTime);

)()

如果未通过serverSocket.accept(),则没有客户端连接。找出原因。在客户端中查找错误。请发布客户端日志cat/stacktrace。告诉您使用的设置。遗尿器?装置等等。那么服务器的代码是正确的吗?问题出在客户端?如果所有服务器代码都正确,我不知道。但是现在很明显你的客户没有连接。这可能是因为您的设置与客户端中使用的URL不一致。第一:告诉你我已经问过的设置。第二:发布客户端的日志。我也已经要求过了。@greenapps客户端的代码不是Android的,所以我不能发布代码。但是我从Play store下载了
套接字协议
应用程序。客户端可以连接到
套接字协议
应用程序。我在手机上创建了软AP模式和TCP服务器,客户端连接到我的手机。然后启动TCP连接。端口为50006。但我已使用客户端尝试连接到此服务器。我还使用同一个客户端连接到另一个TCPServer应用程序,并且它可以连接