コード例 #1
0
ファイル: FTPServer.cs プロジェクト: iam7roni/FTP
        //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);
            }
        }
コード例 #2
0
ファイル: FTPServer.cs プロジェクト: iam7roni/FTP
        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");
            }
        }