在dotnet下用c#编写下载器

System.Net.WebClient client=new WebClient();
byte[] page=client.DownloadData(http://www.bianceng.cn);
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一样可以用正则表达式。

时间: 2025-01-21 06:02:43

在dotnet下用c#编写下载器的相关文章

构造.NET环境下的网页下载器 (1)

网页|下载 一.前言: 微软的.Net框架为我们进行网络编程提供了以下两个名字空间:System.Net以及System.Net.Sockets.通过合理运用其中的类和方法,我们可以很容易地编写出各种网络应用程序.这种网络应用程序既可以是基于流套接字的,也可以是基于数据报套接字的.而基于流套接字的通讯中采用最广泛的协议就是TCP协议,基于数据报套接字的通讯中采用最广泛的自然就是UDP协议了.下面我将重点向大家介绍.NET网络编程中的一些类:Dns类.IPHostEntry类.IPEndPoint

构造.NET环境下的网页下载器 (2)

网页|下载 三.网页下载器实例介绍: 最后,我就综合以上.NET网络编程的一些知识,向大家展示一个很好的实例.该实例是一个运用Socket的基于同步模式的客户端应用程序,它首先通过解析服务器的IP地址建立一个终结点,同时创建一个基于流套接字的Socket连接,其运用的协议是TCP协议.通过该Socket就可以发送获取网页的命令,再通过该Socket获得服务器上默认的网页,最后通过文件流将获得的数据写入本机文件.这样就完成了网页的下载工作了 程序的代码如下: using System;using

link环境下使用codefirst制作《网盘软件》下载器,如何定制主页?

问题描述 link环境下使用codefirst制作<网盘软件>下载器,如何定制主页? link环境下使用codefirst制作<网盘软件>下载器,如何定制主页? 解决方案 可以使用webbrowser控件,用navigate显示你的主页

link环境下,制作一款《网盘软件》,“云服务器”对接“下载器”怎么实现?

问题描述 link环境下,制作一款<网盘软件>,"云服务器"对接"下载器"怎么实现? link环境下,制作一款<网盘软件>,"云服务器"对接"下载器"怎么实现? 解决方案 如果你的服务器采用http协议,你的客户端只要知道了服务器的域名就可以连接上下载文件了.

link环境下,使用codefirst制作的《网盘软件》下载器,如何右键上传?

问题描述 link环境下,使用codefirst制作的<网盘软件>下载器,如何右键上传? link环境下,使用codefirst制作的<网盘软件>下载器,如何右键上传? 解决方案 http://wenku.it168.com/d_001129464.shtml 解决方案二: 在SHELL的上下文菜单上增加一个上传的项

link环境下,制作《网盘软件》的下载器,如何实现流量统计?

问题描述 link环境下,制作<网盘软件>的下载器,如何实现流量统计? link环境下,制作<网盘软件>的下载器,如何实现流量统计? 解决方案 可以用wmi获取系统的网络流量和某个进程的流量,自己google下

link环境下使用codefirst制作《网盘软件》下载器,如何打开主页?

问题描述 link环境下使用codefirst制作<网盘软件>下载器,如何打开主页? link环境下使用codefirst制作<网盘软件>下载器,如何打开主页? 解决方案 Process.Start("iexplore.exe", "http://www.abc.com");

link 环境下,制作《网盘软件》的下载器,请问如何实现断点续传下载?

问题描述 link 环境下,制作<网盘软件>的下载器,请问如何实现断点续传下载? link 环境下,制作<网盘软件>的下载器,请问如何实现断点续传下载? 解决方案 http://www.cnblogs.com/finejob/articles/667873.html

link环境下,制作《网盘软件》的下载器,如何防止用户非法复制地址?

问题描述 link环境下,制作<网盘软件>的下载器,如何防止用户非法复制地址? link环境下,制作<网盘软件>的下载器,如何防止用户非法复制地址? 解决方案 用js屏蔽掉右键,具体google下,有很多.