| |
| package com.example.android.wifidirect.discovery; |
| |
| import android.os.Handler; |
| import android.util.Log; |
| |
| import java.io.IOException; |
| import java.net.InetAddress; |
| import java.net.InetSocketAddress; |
| import java.net.Socket; |
| |
| public class ClientSocketHandler extends Thread { |
| |
| private static final String TAG = "ClientSocketHandler"; |
| private Handler handler; |
| private ChatManager chat; |
| private InetAddress mAddress; |
| |
| public ClientSocketHandler(Handler handler, InetAddress groupOwnerAddress) { |
| this.handler = handler; |
| this.mAddress = groupOwnerAddress; |
| } |
| |
| @Override |
| public void run() { |
| Socket socket = new Socket(); |
| try { |
| socket.bind(null); |
| socket.connect(new InetSocketAddress(mAddress.getHostAddress(), |
| WiFiServiceDiscoveryActivity.SERVER_PORT), 5000); |
| Log.d(TAG, "Launching the I/O handler"); |
| chat = new ChatManager(socket, handler); |
| new Thread(chat).start(); |
| } catch (IOException e) { |
| e.printStackTrace(); |
| try { |
| socket.close(); |
| } catch (IOException e1) { |
| e1.printStackTrace(); |
| } |
| return; |
| } |
| } |
| |
| public ChatManager getChat() { |
| return chat; |
| } |
| |
| } |