//Passive Mode Data Transfer Listner. private Socket PassiveClientSocket(ref TCPListener clientDataListner, int intPort) { Thread oThread = Thread.CurrentThread; lock (oThread) { try { if (clientDataListner.LocalEndpoint == null) { bool done = false; Socket s = null; try { s = clientDataListner.Accept(); done = true; } catch (Exception e) { } return(s); } else { Socket s = clientDataListner.Accept(); return(s); } } catch (Exception e) { Console.ClientConnect(ClientID, e.StackTrace); } return(null); } }
private void Run() { Thread ClientThread; FTPCommandListner = new TCPListener(21); FTPCommandListner.Start(); try { while (true) { ClientSocket = FTPCommandListner.Accept(); ClientThread = new Thread(new ThreadStart(FTPClientThread)); ClientIP = ClientSocket.RemoteEndpoint.ToString(); //Raise Event ClientID++; onMsgArrived(ClientID, ClientIP); Connected clientConnected = new Connected(Console.Connected); clientConnected(ClientThread, ClientIP); ClientThread.Start(); } } catch (ThreadInterruptedException e) { Thread.CurrentThread.Abort(); } catch (ThreadStopException e) { System.Console.WriteLine("Thread killed"); } }