/********************************************************************
 created: 2008/04/16
 created: 16:4:2008   11:07
 filename:  F:\Workspace\Midapex\Src\Net\OurFtpServer\Program.cs
 file path: F:\Workspace\Midapex\Src\Net\OurFtpServer
 file base: Program
 file ext: cs
 author:  Deng.Yangjun@Gmail.com
 
 purpose: 
*********************************************************************/
using System;
using System.Collections.Generic;
using System.Text;
using System.Diagnostics;
using Midapex.Net.Ftp;
using Midapex.Net;

namespace OurFtpServer
{
    class Program
    {
        static void Main(string[] args)
        {
            Trace.Listeners.Add(new ConsoleTraceListener());

            AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(CurrentDomain_UnhandledException);
            try
            {
                Console.WriteLine("********************************************************************");
                Console.WriteLine("Midapex Village FTP Server V2.1");
                Console.WriteLine("(C)2006-2008 Midapex Village");
                Console.WriteLine("********************************************************************");
                Console.WriteLine("");

                using (FtpServer server = new FtpServer())
                {
                    Console.WriteLine("测试帐号:anonymous(匿名登陆,具有读权限), ftp(密码:ftp,具有读写权限)");

                    /*
                     * 服务器的最大连接数
                     */
                    server.Capacity = 1000;

                    /*
                     * 连接超时时间
                     */
                    server.HeartBeatPeriod = 120000;  //120秒

                    /*
                     * 创建一个使用FTP的用户,
                     */
                    FtpUser user = new FtpUser("ftp");
                    user.Password = "ftp";
                    user.AllowWrite = true;
                    user.HomeDir = Environment.CurrentDirectory;

                    /*
                     * 限制该帐号的用户的连接服务器的最大连接数
                     * 也就是限制该使用该帐号的FTP同时连接服务器的数量。
                     */
                    user.MaxConnectionCount = 2;

                    /*
                     * 限制用户的最大上传文件为20M,超过这个值上传文件会失败。
                     * 默认不限制该值,可以传输大文件。
                     */
                    user.MaxUploadFileLength = 1024 * 1024 * 20;
                    server.AddUser(user);

                    //把当前目录作为匿名用户的目录,测试目的(必须指定)
                    server.AnonymousUser.HomeDir = Environment.CurrentDirectory;

                    server.Start();
                    Console.WriteLine("Press enter to exit...");
                    Console.ReadLine();
                    server.Stop();
                }
            }
            catch (System.Exception e)
            {
                NetDebuger.PrintErrorMessage("FATAL ERROR:" + e.Message);
            }

        }

        static void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e)
        {
            NetDebuger.PrintErrorMessage("UNHANDLED ERROR:" + e.ExceptionObject.ToString());
        }
    }
}

posted on 2008-05-11 01:56  超少  阅读(831)  评论(1编辑  收藏  举报