| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2241 人关注过本帖
标题:C#网络程序开发篇--非常简单篇
取消只看楼主 加入收藏
fuyu888
Rank: 1
等 级:新手上路
帖 子:45
专家分:0
注 册:2005-4-14
收藏
 问题点数:0 回复次数:2 
C#网络程序开发篇--非常简单篇

头几天斑竹转了个网络程序开发篇之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编辑过]

搜索更多相关主题的帖子: 网络程序 Net using System WebClient 
2005-04-23 16:32
fuyu888
Rank: 1
等 级:新手上路
帖 子:45
专家分:0
注 册:2005-4-14
收藏
得分:0 
是啊,学习就改脚踏实地,呵呵,如果大家对这种类型的感兴趣,有空我多弄几篇

------此人由于过于英俊,头像正面被系统永远封印----
2005-04-25 13:48
fuyu888
Rank: 1
等 级:新手上路
帖 子:45
专家分:0
注 册:2005-4-14
收藏
得分:0 
什么是通道?
Stream s= w.OpenRead (a);//以此WebClient建立一个“读的”通道s
   StreamReader r=new StreamReader (s);//建立作用于s通道的StreamReader r
第1:
String 本来是“流”的意思。比如我们现在要访问A网站,必须建立一个能做到连接我们本机到A的东西,这个东西从宏观的来看,是网线,设备就是其中的一种。从微观看,我们程序能和A交换信息,就是通过Stream。.类似的比如FileStream(文件流)我们要现在正在编写的程序读取本机C://1.txt的内容,就必须建立当前程序和C盘我们要读取文件1.txt的通道,建立成功后才能实现当前程序和我们希望交流的文件信息互换。再比如NetworkStream,网络工作留,是和网络通信的,不同的是这个流可以封闭的和不封闭的存在。A机访问B机,A机循环监听,先建立这个完整流的一半(这个时候不封闭)B机GetStream把这个流连接到自己。也是Stream的一种体现。
第2:
如果a是网址 只要网站正确运行,就一定会得到响应吗?

要看网站允许你访问吗,举个例子,你从默认的IE打开浏览器,都会有些网站打不开不是吗
r任何Request都是通过一定协议得到GetResponse 的。
第3
除了礼貌,还有其他作用吗?

还可以异步叶面请求等

------此人由于过于英俊,头像正面被系统永远封印----
2005-04-29 18:38
快速回复:C#网络程序开发篇--非常简单篇
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.015149 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved