头几天斑竹转了个网络程序开发篇之Socket篇,本来,套接字的确是作用于传输层的,其相关的灵活性比较高。如果有看不明白的同学,也不必气馁,今天我来讲下简单的网络通信的例子。 关于在.NET通信的,都要用到using System.Net;以及using System.Net.Socket; 其中,using System.Net通常与高层操作有关,现在我们就用它
从特定的URI请求文件(比如下载)可以用System.Net.WebClient这个高层次的类 比如用WebClient从WEB站点下载有2种方式: 1.WebClient cl=new WebClient(); cl.DownloadFile("http://www.163.com","myt.htm"); 以上2句话把163的主叶下载到你建立程序目录下的叫myt的文件中。这个文件格式是htm格式的。 2 有时候我们想把下载的东西做进一步操作,就这样 WebClient cl=new WebClient(); Stream st=cl.OpenRead("www.163.com"); 这里通过cl建立一个通道st,以等待下一不操作。 请看下面例子 我们先创建个windows应用程序,包括2个按扭和2个richTextBox以及2个TextBox 目的是在第1个textbox里输入某个网站的网址,点按纽1,在richTextBox1里就会出现那个网叶的文本代码,同样在第2个textbox里输入某个网站的网址,点按纽2,在richTextBox2里就会出现第2个网叶的文本代码 多加using System.IO ; using System.Net ; 在引用
双击按扭1,加一下代码: private void button1_Click(object sender, System.EventArgs e) { tring a="http://"+this.textBox1 .Text ;//传递textBox1的文本信息 System.Net .WebClient w=new WebClient ();//建立一个WebClient Stream s= w.OpenRead (a);//以此WebClient建立一个“读的”通道s StreamReader r=new StreamReader (s);//建立作用于s通道的StreamReader r this.richTextBox1 .Text =r.ReadToEnd ();//读取到this.richTextBox1 } 这样在TextBox 输入网叶名字,就完成我们想得到的结果 这样做是最方便的,但是缺点是不提供身份验证,特别是在上传文件时候问题出现:很多网站不会接受没有身份验证的上传文件,经管可以给请求添加标题信息且检查返回的标题信息,但是在一般意义上,对于任何一个协议,WebClient没有具体的支持。 所以,它不恩能够处理任何附加特性,这时候需要使用WebRequest类和WebResponse系列 双击按扭2,加以下代码 rivate void button2_Click(object sender, System.EventArgs e) { string a="http://"+this.textBox2 .Text ; WebRequest x=WebRequest.Create (a);//建立一个请求x WebResponse s=x.GetResponse ();//得到请求x的响应s Stream st=s.GetResponseStream ();//建立s响应通道st StreamReader r=new StreamReader (st); this.richTextBox2 .Text =r.ReadToEnd (); } 这样做显的更有“礼貌”点
当然 以上我说的是通信程序的少之又少的内容,就这些我打字手也累了,就这样把,有时间我再说说多点的内容 第二篇通信编程2-中等难度Socket实用篇 http://bbs.bc-cn.net/bbs/dispbbs.asp?boardID=117&ID=16812&page=1
[此贴子已经被幻风幻云于2005-4-29 0:31:03编辑过]