2012-02-08 7 views
3

Android端末でWi-Fiテザリング/ホットスポットを有効にして、2つの異なるアプリを通じてクライアントと同様にクライアントとして設定できますか?Wi-Fiホットスポットが有効になっている端末のサーバーとクライアント

+0

あなたはWifi-ClientやTCP/UDP-Clientのようにクライアントを意味しますか? – Badmaster

+0

TCP/UDPクライアントの場合と同様... –

+0

Ys可能です –

答えて

1

2つの異なるアプリケーションは必要ありません。 1つのアプリケーションに2つの機能を統合する。

クライアント側の実装にはjava.net.Socketを、サーバー側の実装にはjava.net.ServerSocketを使用します。

サーバサイドコード:

ポートでデータをリッスンサーバーを起動するために呼び出すstartServer()(あなたが望むように入れてください)。

void startServer() throws IOException { 
     new Thread(() -> { 
      try { 
       serverSocket = new ServerSocket(9809); 
      } catch (IOException e) { 
       e.printStackTrace(); 
      } 
      Socket socket = null; 
      try { 
       socket = serverSocket.accept(); 
      } catch (IOException e) { 
       e.printStackTrace(); 
      } 
      DataInputStream stream = null; 
      try { 
       if (socket != null) { 
        stream = new DataInputStream(socket.getInputStream()); 
       } 
      } catch (IOException e) { 
       e.printStackTrace(); 
      } 
      String gotdata = null; 
      try { 
       if (stream != null) { 
        gotdata = stream.readUTF(); 
       } 
      } catch (IOException e) { 
       e.printStackTrace(); 
      } 
      try { 
       assert socket != null; 
       socket.close(); 
      } catch (IOException e) { 
       e.printStackTrace(); 
      } 
      try { 
       serverSocket.close(); 
      } catch (IOException e) { 
       e.printStackTrace(); 
      } 

      System.out.println("THE DATA WE HAVE GOT :"+gotdata) 

     }).start(); 

クライアント側コード: ここで、あなたは(私の場合のために、それは192.168.1.100だった)6行目では、サーバとして動作するデバイスのIPアドレスを入れなければなりません。

sendData()を呼び出して、サーバとして機能するデバイスにデータを送信します。

void sendData() { 
    new Thread(new Runnable() { 
     @Override 
     public void run() { 
      try { 
       Socket socket = new Socket("192.168.1.100", 9809); 
       DataOutputStream stream = new DataOutputStream(socket.getOutputStream()); 
       stream.writeUTF("Some data here"); 
       stream.flush(); 
       stream.close(); 
       socket.close(); 
       runOnUiThread(new Runnable() { 
        @Override 
        public void run() { 
         System.out.println("Done!"); 
        } 
       }); 
      } catch (Exception e) { 
       runOnUiThread(new Runnable() { 
        @Override 
        public void run() { 
         System.out.println("Fail!"); 
        } 
       }); 
       e.printStackTrace(); 
      } 
     } 
    }).start(); 
} 
関連する問題