在dotnet下用c#編寫下載器

來源:互聯網
上載者:User
System.Net.WebClient client=new WebClient();
   byte[] page=client.DownloadData("http://www.google.com");
   string content=System.Text.Encoding.UTF8.GetString(page);
  
  在dotnet下經常使用此類方法
  
   string hostName="www.nnn.net";
   label1.Text="xxx";
   int port=80;
   IPHostEntry ipInfo=Dns.GetHostByName(hostName);
   //取得IPAddress[]
   IPAddress[] ipAddr=ipInfo.AddressList;
   //得到ip
   IPAddress ip=ipAddr[0];
   IPEndPoint hostEP=new IPEndPoint(ip,port);
   Socket socket=new Socket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp);
  
   socket.Connect(hostEP);
  
   string sendStr="GET "+"/tryst/default.asp"+" HTTP/1.1\r\nHost: " + hostName + "\r\nConnection: Close\r\n\r\n";
   //建立bytes位元組數組以轉換髮送串
   byte[] bytesSendStr=new byte[1024];
   //將發送內容字串轉換成位元組byte數組
   bytesSendStr=Encoding.ASCII.GetBytes(sendStr);
   socket.Send(bytesSendStr,bytesSendStr.Length,0);
   //聲明接收返回內容的字串
   string recvStr="";
   //聲明位元組數組,一次接收資料的長度為1024位元組
   byte[] recvBytes=new byte[1024];
   //返回實際接收內容的位元組數
   int bytes=0;
   //迴圈讀取,直到接收完所有資料
   while(true)
   {
   bytes=socket.Receive(recvBytes,recvBytes.Length,0);
   //讀取完成後退出迴圈
   if(bytes<=0)
   break;
   //將讀取的位元組數轉換為字串
   recvStr+=Encoding.ASCII.GetString(recvBytes,0,bytes);
   } 
   
  socket 方式以及模型:
  
  不能看出跟程式的匹配,下載都是客戶機的機制,解釋出地址後,聲明socket,發送一段報文,返回資訊
  
  報文string sendStr="GET "+"/tryst/default.asp"+" HTTP/1.1\r\nHost: " + hostName + "\r\nConnection: Close\r\n\r\n";
  用get方式,得到網站裡的某一個頁面,如果想得到網頁資訊與webclient一樣可以用Regex
  
  http://liuxiaoyi666.cnblogs.com/archive/2006/06/02/415826.html
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.