C#网络应用(二)

来源:互联网 发布:阿里云免费云主机 编辑:程序博客网 时间:2024/06/13 10:30

一、使用DNS进行地址解析

      IP地址是一种在Internet上给主机进行编址的方式。IP地址由32位二进制数组成,为了使用方便,常以XXX.XXX.XXX.XXX形式表示,每组XXX代表小于等于255的十进制正整数。在Internet中,IP地址是唯一的。本节所说的IP地址不涉及IPv6地址,而是IPv4地址。由于数字记忆效果很差,因此使用主机名称进行访问,也就是通常所说的网址。这种由主机名称到IP地址之间的转换通常由DNS服务器完成。

本节介绍如何在C#中进行主机名称的查找:

using System.Net;

class program

{

      static void Main(string[ ] args)

      {

           //定义一个IPHostEntry类型变量,用于表示主机地址

           IPHostEntry  host;

           //获取www.baidu.com的地址解析,存储于host变量中

           host=Dns.GetHostEntry("www.baidu.com");

           //获取所有与www.baidu.com关联的IP地址

           foreach(IPAddress  ip  in  host.AddressList)

           {

                Console.WriteLine(ip.ToString());//输出

           }

      }

}

运行结果:

202.108.22.43

202.108.22.5

请按任意键继续。。。。。

打开IE浏览器,输入解析得到的结果“202.108.22.43”并浏览,同样202.108.22.5结果一样。


二、用C#实现FTP浏览

      FTP的中文名称为文件传输协议,它是一个用于在两台装有不同操作系统的机器中传输计算机文件的软件标准。它属于网络协议组的应用层。FTP一般通过两个连接进行操作,一个用于发送命令,另一个用于数据传输。FTP协议的具体规范请参考“http://www.ietf.org/rfc/rfc0959.txt”,这是一份标准的FTP协议文档。进行FTP应用类软件的开发都应该按照标准的FTP协议进行规范地开发。

      Windows操作系统附带了几个进行FTP客户端操作的方法,其中一种是使用控制台。打开控制台,输入ftp,并按回车键,在"ftp>“提示符后即可输入ftp操作命令,输入"?"可以查看所有的FTP命令如下:

!                      delete            literal          prompt               send

?                     debug            ls                 put                      status

append         dir                   mdelete     pwd                    trace

ascii              disconnect    mdir           quit                      type

bell                get                  mget           quote                 user

binary            glob               mkdir          recv                    verbose

bye                 hash             mls              remotehelp

cd                   help              mput            rename

close             lcd                 open            rmdir

输入”open ftp.microsoft.com",控制台输出如下:

Connected  to  ftp.microsoft.com

220  Microsoft   FTP  Service

User  (ftp.microsoft.com:(none)):

此时提示输入用户名,输入"anonymous",按回车键,输出如下:

331  Anonymous  access  allowed, send identity (e-mail name) as password

Password:

此时提示输入密码,输入"anonymous@microsoft.com",按回车键,输出如下:

230-Welcome to FTP.MICROSOFT.COM. Also visit http://www.microsoft.com/downloads.

230  Anonymous  user  logged in.

ftp>

此时登录FTP的过程已经结束,输入"ls",按回车键,输出如下:

200  PORT command successful.

150  Opening  ASCII  mode data connection for file list.

bussys

deskapps

developr

KBHelp

MISC

MISC1

peropsys

products

pss

ResKit

Services

Softlib

226  Transfer  complete.

ftp:收到101字节,用时0.00Seconds 101000.00Kbytes/sec.

此处输入"ls"的作用是列出当前的目录,可以看到ftp.microsoft.com站点下的目录共有13个。输入“cd  Softlib”,按回车键,输出如下:

250  XWD  command  successful

提示已成功进入该目录,再次输入“ls”,按回车键,输出如下。

200 PORT command successful.

150 Opening ASCII mode data connection for file list.

index.txt

MSLFILES

README.TXT

226  Transfer  complete.

ftp:收到33字节,用时0.00Seconds  33000.00Kbytes/sec.

可以看到此处有一个目录和两个文本文件,使用get命令可以获取文件。输入“get README.TXT”,按回车键,输出如下:

200  PORT command successful.

150  Opening  ASCII  mode data connection for README.TXT(2401 bytes).

226  Transfer complete.

ftp:收到2401字节,用时0.00Seconds 2401000.00Kbytes/sec.

文件已被成功下载。如果编写一个FTP客户端程序,其本质就是要使用C#提供的网络库执行类似的一个过程。由于C#中没有提供专用的FTP客户端组件,所以要实现一个专业的FTP客户端必须编写大量代码。

本节提供一个简单的访问FTP方法:

为窗体添加一个WebBrowser控件,编写窗体Load事件的代码如下:

public partial class Form1:Form

{

    public Form1()

    {

        InitializeComponent();

    }

    private  void Form1_Load(object sender,EventArgs e)

    {

        //给出要访问ftp服务器的网址,用其声明一个Uri变量

        Uri  u=new Uri("ftp://ftp.microsoft.com");

        //将要访问ftp服务器网址的Uri变量赋值给WebBrowser控件

        webBrowser1.Url=u;

    }

}

0 0
原创粉丝点击