1
2package com.example.android.wifidirect.discovery;
3
4import android.os.Handler;
5import android.util.Log;
6
7import java.io.IOException;
8import java.net.InetAddress;
9import java.net.InetSocketAddress;
10import java.net.Socket;
11
12public class ClientSocketHandler extends Thread {
13
14    private static final String TAG = "ClientSocketHandler";
15    private Handler handler;
16    private ChatManager chat;
17    private InetAddress mAddress;
18
19    public ClientSocketHandler(Handler handler, InetAddress groupOwnerAddress) {
20        this.handler = handler;
21        this.mAddress = groupOwnerAddress;
22    }
23
24    @Override
25    public void run() {
26        Socket socket = new Socket();
27        try {
28            socket.bind(null);
29            socket.connect(new InetSocketAddress(mAddress.getHostAddress(),
30                    WiFiServiceDiscoveryActivity.SERVER_PORT), 5000);
31            Log.d(TAG, "Launching the I/O handler");
32            chat = new ChatManager(socket, handler);
33            new Thread(chat).start();
34        } catch (IOException e) {
35            e.printStackTrace();
36            try {
37                socket.close();
38            } catch (IOException e1) {
39                e1.printStackTrace();
40            }
41            return;
42        }
43    }
44
45    public ChatManager getChat() {
46        return chat;
47    }
48
49}
50