package com.guo.duoduo.airplayreceiver.rtsp; import java.io.IOException; import java.net.ServerSocket; import java.net.Socket; import java.net.SocketTimeoutException; import com.guo.duoduo.airplayreceiver.utils.Debug; /** * Created by Guo.Duo duo on 2015/9/9. */ public class LaunchThread extends Thread { private static final String tag = LaunchThread.class.getSimpleName(); ServerSocket serverSocket = null; private boolean stopThread = false; private int port; public LaunchThread(int port) { this.port = port; } @Override public void run() { try { serverSocket = new ServerSocket(port); serverSocket.setReuseAddress(true); while (!stopThread) { try { Socket socket = serverSocket.accept(); Debug.d(tag, "raop get connection from " + socket.toString()); new RTSPResponder(socket).start(); } catch (SocketTimeoutException e) { e.printStackTrace(); break; } } } catch (IOException e) { e.printStackTrace(); } finally { try { if (serverSocket != null) { serverSocket.close(); } } catch (IOException e1) { e1.printStackTrace(); } } } public void destroy() { Debug.d(tag, "launchThread destroy = "); stopThread = true; try { if (serverSocket != null) serverSocket.close(); } catch (Exception e) { e.printStackTrace(); } } }