Android connect to tethering socket

后端 未结 3 912
陌清茗
陌清茗 2020-12-15 03:42

I have 2 android devices, one acts as a server that is in tethering mode, and accepting connections to a port. The other device acts as a client that connects to the server

相关标签:
3条回答
  • 2020-12-15 04:05

    By testing it turns out the connection cannot be established on the tethering device.

    But if we reverse the process and open a serversocket on the connected client. And connect to it from the tethering device, it will work.

    So reversing the communication is the answer.

    0 讨论(0)
  • 2020-12-15 04:13

    In a tethered wifi connection, connection provider can not work as a client. So we need to implement a bidirectional tcp socket connection. Use a server socket with a port number in device which is in tethering mode. This device act as a server. In client device use socket to access the client port with IP address.

    0 讨论(0)
  • 2020-12-15 04:18

    Server Side

    class ServerThread implements Runnable {
    
        public void run() {
            socket = new Socket();
    
            try {
                serverSocket = new ServerSocket(SERVERPORT);
            } catch (IOException e) {
                e.printStackTrace();
            }
            while (!Thread.currentThread().isInterrupted()) {
                try {
                        socket = serverSocket.accept();
    
                    CommunicationThread commThread = new CommunicationThread(socket);
                    new Thread(commThread).start();
    
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
    }
    

    Client Side

    class ClientThread implements Runnable {
    
        @Override
        public void run() {
            try {
                socket = new Socket();
                InetSocketAddress socketAddress = new InetSocketAddress(SERVER_IP, SERVERPORT);
                socket.connect(socketAddress);
    
                CommunicationThread commThread = new CommunicationThread(socket);
                new Thread(commThread).start();
    
            } catch (UnknownHostException e1) {
                e1.printStackTrace();
            } catch (IOException e1) {
                e1.printStackTrace();
            }
        }
    }
    
    0 讨论(0)
提交回复
热议问题