首页 新闻 会员 周边

httpListener问题

0
悬赏园豆:50 [已关闭问题] 关闭于 2008-12-18 22:14

 static void Main(string[] args)
        {
            FileStream fs = new FileStream("1.rar", FileMode.Open);
            BinaryReader dr = new BinaryReader(fs);
            byte [] bs=new byte[(int)fs.Length ];
            dr.Read(bs,0,bs.Length);
            dr.Close();
                                                 
            HttpListener listen = new HttpListener();
            Console.WriteLine("The Connect sucessed ");
            listen.Prefixes.Add("http://127.0.0.1:80/My/1.rar/");
            listen.Start();
      while(true)
      { 
            HttpListenerContext context = listen.GetContext();
            context.Response.AddHeader("Content-disposition", "attachment:filename='1.rar'");
            context.Response.AppendHeader("Content-Lengh", bs.Length.ToString());
            context.Response.AddHeader("Content-Transfer-Encoding", "binary");
            context.Response.ContentType = "Application/octet-stream";
            try
            {
                
                    Console.WriteLine("Sending...........");
                    context.Response.OutputStream.Write(bs, 0, bs.Length);
                    context.Response.OutputStream.Flush();
                    context.Response.OutputStream.Close();

             }
            catch (Exception e)
             {

                 Console.WriteLine(e.Message.ToString());
                 Console.ReadLine();

             }
            
        }
//这段代码执行时,在浏览器地址栏里输入:http://127.0.0.1/My/1.rar
//迅雷能检测到文件的大小,也能实现下载。但是抛出异常:
//在前缀“http://127.0.0.1:80/My/1.rar/”上侦听失败,因为它与计算机上的现有注册冲突。

//有时还不稳定,不能实现下载。

//望各位指教一二,如果有更好的代码能实现如上的下载方法,望赐教。

问题补充: 不好意思啊 今天才看到你的回复.我在http协议方面还很少,看来要实现我的计划还有一段时间啊。
王军的主页 王军 | 初学一级 | 园豆:110
提问于:2008-12-09 12:40
< >
分享
所有回答(1)
0

listen.Prefixes.Add(http://127.0.0.1:80/My/1.rar/);和楼上一样,后面怎么多一个/

Astar | 园豆:40805 (高人七级) | 2008-12-09 13:22
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册