Example #1
0
        static void Main(string[] args)
        {
            try
            {
                // 取得本機的識別名稱
                string hostname = Dns.GetHostName();

                // 取得主機的DNS資訊
                IPAddress serverIP = Dns.Resolve(hostname).AddressList[0];

                // Port = 21
                string Port = "21";

                System.Net.Sockets.TcpListener tcpListener = new TcpListener(serverIP, Int32.Parse(Port));

                // 開始接聽等候用戶端的網路連線請求
                tcpListener.Start();

                Console.WriteLine("FTP server started at: " + serverIP.ToString() + ":" + Port);

                FTPSession ftpSession = new FTPSession(tcpListener);

                // 執行緒
                ThreadStart serverThreadStart = new ThreadStart(ftpSession.FTPSessionThread);
                Thread      serverthread      = new Thread(serverThreadStart);

                serverthread.Start();
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.StackTrace.ToString());
            }
        }
Example #2
0
        static void Main(string[] args)
        {
            try
            {
                //IPAddress serverIP = IPAddress.Parse("127.0.0.1") ;
                String    hostname = Dns.GetHostName();
                IPAddress serverIP = Dns.Resolve(hostname).AddressList[0];

                // FTP Server Port = 21
                String Port = "21";

                IPEndPoint serverhost = new IPEndPoint(serverIP, Int32.Parse(Port));

                Socket serverSocket = new Socket(AddressFamily.InterNetwork,
                                                 SocketType.Stream, ProtocolType.Tcp);

                serverSocket.Bind(serverhost);

                // Backlog = 100
                serverSocket.Listen(100);

                Console.WriteLine("FTP server started at: " + serverhost.Address.ToString() + ":" + Port);

                FTPSession ftpSession = new FTPSession(serverSocket);

                ThreadStart serverThreadStart = new ThreadStart(ftpSession.FTPSessionThread);
                Thread      serverthread      = new Thread(serverThreadStart);

                serverthread.Start();
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.StackTrace.ToString());
            }
        }
Example #3
0
        static void Main(string[] args)
        {
            try
            {
                // 建立伺服端Socket
                Socket serverSocket = new Socket(AddressFamily.InterNetwork,
                                                 SocketType.Stream, ProtocolType.Tcp);

                // 取得本機的識別名稱
                string hostname = Dns.GetHostName();

                // 取得主機的DNS資訊
                IPAddress serverIP = Dns.Resolve(hostname).AddressList[0];

                // Port = 21
                string Port = "21";

                // 處理主機IP位址及主機服務所需的通訊埠資訊
                IPEndPoint serverhost = new IPEndPoint(serverIP, Int32.Parse(Port));

                // 繫結設定伺服端Socket
                serverSocket.Bind(serverhost);

                // 開始接聽等候用戶端的網路連線請求
                // 設定伺服端最大用戶端連線數為int.MaxValue
                serverSocket.Listen(int.MaxValue);

                Console.WriteLine("FTP server started at: " + serverIP.ToString() + ":" + Port);

                FTPSession ftpSession = new FTPSession(serverSocket);

                // 執行緒
                ThreadStart serverThreadStart = new ThreadStart(ftpSession.FTPSessionThread);
                Thread      serverthread      = new Thread(serverThreadStart);

                serverthread.Start();
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.StackTrace.ToString());
            }
        }
Example #4
0
        static void Main(string[] args)
        {
            try
            {
                Socket serverSocket = new Socket(AddressFamily.InterNetwork,
                                                 SocketType.Stream, ProtocolType.Tcp);

                string    hostname = Dns.GetHostName();
                IPAddress serverIP = Dns.Resolve(hostname).AddressList[0];

                // Port = 21
                string Port = "21";

                IPEndPoint serverhost = new IPEndPoint(serverIP, Int32.Parse(Port));

                // 繫結設定伺服端Socket所使用的IP位址與通訊埠
                serverSocket.Bind(serverhost);

                // 設定伺服端最大用戶端連結數 Backlog = 50
                serverSocket.Listen(50);

                Console.WriteLine("FTP server started at: " + serverIP.ToString() + ":" + Port);

                FTPSession ftpSession = new FTPSession(serverSocket);

                // 執行緒
                ThreadStart serverThreadStart = new ThreadStart(ftpSession.FTPSessionThread);
                Thread      serverthread      = new Thread(serverThreadStart);

                serverthread.Start();
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.StackTrace.ToString());
            }
        }