计算机网络课件 WinForm网络编程

上传人:woxinch****an2018 文档编号:54284481 上传时间:2018-09-10 格式:PPT 页数:31 大小:3.11MB
返回 下载 相关 举报
计算机网络课件 WinForm网络编程_第1页
第1页 / 共31页
计算机网络课件 WinForm网络编程_第2页
第2页 / 共31页
计算机网络课件 WinForm网络编程_第3页
第3页 / 共31页
计算机网络课件 WinForm网络编程_第4页
第4页 / 共31页
计算机网络课件 WinForm网络编程_第5页
第5页 / 共31页
点击查看更多>>
资源描述

《计算机网络课件 WinForm网络编程》由会员分享,可在线阅读,更多相关《计算机网络课件 WinForm网络编程(31页珍藏版)》请在金锄头文库上搜索。

1、第七章、 WinForms网络编程,本章主要内容介绍 7.1 windows和窗体 7.2 Visual Stutio .net IDE简介 7.3 事件处理,CONTENT,本章学习目标:,了解组网 通过 WinForms访问 Internet 通过 WinForms进行套接字编程,组网简介 3-1,打印机在物理上连接至单台计算机,连接在网络上的多位用户,打印?,打印?,打印?,组网是指将网络中的计算机连接在一起 可共享打印机以供网络中所有用户使用,降低了为每个用户采购打印机而带来的成本, 充分利用资源,组网简介 3-2,组网是将许多设备(如计算机、打印机和工作站)连接成一个网络以共享资源,

2、WinForms网络编程中用到 System.Net 和 System.Net.Sockets 命名空间,System.Net 命名空间主要处理高层的操作,例如下载和上载文件,System.Net.Sockets 包含执行低层操作的类, 处理用于让计算机之间高效通信的代码,组网简介 3-3,电源插座,电度表,具有唯一的地址,网络套接字,使用数据包和 IP 地址,IP 地址,唯一地标识 Internet 上的每台电脑,IP(Internet协议),低层的路由协议可将数据分成很小的数据包并通过网络将它们发送到某个地址。,TCP(传输控制协议),可靠传输数据的高层协议,UDP(用户数据报协议),支持

3、快速、无连接、不可靠的数据包传输,访问 Internet 6-1,Internet 应用程序,客户端应用程序,服务器应用程序,万维网是一个客户端/服务器应用程序, 借助浏览器对世界各地的 Web 服务器上存储的数据进行访问,WebClient 类,请求文件并从特定 URL 接收文件,不能继承,具有一些方法可用于从 URI 标识的任何本地 Intranet 或 Internet 资源发送和接收数据。,访问 Internet 6-2,URI 用于标识 Internet 上的资源以及通信协议,路径标识符从服务器上查找请求的信息,服务器标识符可标识 DNS 主机名或 TCP 地址,模式标识符标识用于通

4、信的协议,可选查询字符串将信息从客户端传递至服务器,http:/ Internet 6-3,发送或接收来自统一资源标识符的数据,向统一资源标识符发出请求,得到统一资源标识符发出的响应,访问 Internet 6-4,WebClient 类的属性和方法,创建如下所示的窗体,2.将下列名称空间添加至窗体。using System.Net;using System.IO;3.在按钮 btnGo 的 Click 事件中添加下列代码,以从文本框输入的 URI 中读取数据。private void btnGo_Click(object sender, System.EventArgs e)WebClien

5、t client = new WebClient();Stream strm = client.OpenRead(txtURI.Text);StreamReader sr = new StreamReader(strm);string line;while(line = sr.ReadLine() != null)lstRecd.Items.Add(line);strm.Close();,访问 Internet 6-5,WebRequest 类,抽象类,封装与服务器连接、发送请求和接收响应的详细信息,使用传递至其 Create() 方法的 URI 值创建特定于协议的实例,对 WebReques

6、t 实例调用的 GetResponse() 方法帮助向 Internet 资源发出请求,访问 Internet 6-6,WebResponse 类,抽象类,提供来自 URI 的响应。,客户端应用程序不创建 WebResponse 对象,因为在对 WebRequest 实例调用 GetResponse() 方法时会创建它们。,private void btnGo_Click(object sender, System.EventArgs e) WebRequest wrq =WebRequest.Create(txtURI.Text);WebResponse wrs=wrq.GetRespons

7、e();Stream strm=wrs.GetResponseStream();StreamReader sr = new StreamReader(strm);string line;while(line=sr.ReadLine() != null)lstRecd.Items.Add(line);strm.Close(); ,使用WebRequest 和 WebResponse 类实现“执行”按钮的功能,套接字编程,System.Net.Sockets名称空间包含允许直接发送TCP网络请求或侦听特定端口上的TCP网络请求的相关类,大量的方法和属性用于网络连接,提供客户端连接,用于创建和使用

8、TCP 网络服务,可用于从 TCP 网络客户端侦听连接,可用于为 UDP 客户端创建连接(它是 TCP 的备用协议,在本地网络上使用),使用 TCP 类,TCP ( Transfers Control Protocol ,传输控制协议)类包含连接两个点并在这两个点之间发送数据的方法 一个点由 IP 地址和端口号组成。现有协议具有定义好的端口号 HTTP 使用端口号 80;SMPT 或电子邮件使用端口号 25; FTP 使用端口号 21 Internet Assigned Number Authority (IANA,Internet 编号分配管理机构)负责为这些有名的服务分配端口号 TCP 提

9、供有保证的传送、错误更正和数据缓冲 TcpClient 类具有通过网络连接、发送和接收流数据的简单方法 TcpListener 类具有侦听进入的 TCP 连接的方法0,TcpClient 对象,TCPListener 类的方法,TcpListener类具有侦听进入的TCP连接的方法,其中Start()方法用于开始侦听进入的连接请求,并且将把进入的连接放置在队列中,直到调用Stop()为止。AcceptSocket()或AcceptTcpClient()方法可用于从进入的连接请求队列中提取连接。,TCP 类应用程序实例 8-1,将以下两个名称空间添加至窗体,using System.Net.So

10、ckets;using System.IO ;,在窗体的声明区域中声明下列变量,public TcpListener tcpListener;private NetworkStream networkStream ;private StreamReader streamReader ;private StreamWriter streamWriter ;public Socket socketForClient;,TCP 类应用程序实例 8-2,private void btnstart_Click(object sender, System.EventArgs e) tcpListener

11、= new TcpListener(1234);tcpListener.Start(); MessageBox.Show(“服务器已启动“) ;socketForClient = tcpListener.AcceptSocket(); networkStream = new NetworkStream(socketForClient);streamWriter = new StreamWriter(networkStream);streamReader = new StreamReader(networkStream);try if (socketForClient.Connected) Me

12、ssageBox.Show(“客户端已连接“);string line = streamReader.ReadLine();txtServerClient.Text=line;line=line.ToUpper()+ “!“;streamWriter.WriteLine(line);txtServerServer.Text=line;streamWriter.Flush() ; catch (Exception ae) Console.WriteLine(ae.ToString() ; ,在按钮 btnstart 的 Click 事件中添加下列代码,TCP 类应用程序实例 8-3,privat

13、e void btnRecd_Click(object sender, System.EventArgs e) try if (socketForClient.Connected) string line = streamReader.ReadLine();txtServerClient.Text=line;line=line.ToUpper()+ “!“;streamWriter.WriteLine(line);txtServerServer.Text=line;streamWriter.Flush() ; catch (Exception ae) Console.WriteLine(ae.

14、ToString() ; ,在按钮 btnRecd 的 Click 事件中添加下列代码,以连续将数据传输到客户端,TCP 类应用程序实例 8-4,private void Form1_Closing(object sender, System.ComponentModel.CancelEventArgs e) DialogResult answer=MessageBox.Show (“这将关闭服务器。您是否确实要关闭它?“,“提示框“,MessageBoxButtons.YesNo ); if (answer=DialogResult.Yes)Application.Exit();if (an

15、swer = DialogResult.No)e.Cancel =true;socketForClient.Close(); ,在窗体 Form1 的 Closing 事件中添加下列代码,以关闭所有连接,TCP 类应用程序实例 8-5,将以下两个名称空间添加至窗体,using System.Net.Sockets; using System.IO ;,声明下列变量,TcpClient myclient; private NetworkStream networkStream ; private StreamReader streamReader ; private StreamWriter s

16、treamWriter ;,TCP 类应用程序实例 8-6,在窗体的构造函数中添加代码,以在特定端口建立与服务器的连接,public Form1() InitializeComponent();trymyclient = new TcpClient(“localhost“, 1234);catchMessageBox.Show(“未能在 0:999 处连接至服务器 “, “localhost“);return;networkStream = myclient.GetStream();streamReader = new StreamReader(networkStream);streamWriter = new StreamWriter(networkStream); ,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 高中教育

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号