C#网络编程及应用 教学课件 ppt 作者 刘瑞新 第09章 网络协议与套接字编程

上传人:E**** 文档编号:89188325 上传时间:2019-05-21 格式:PPT 页数:19 大小:74KB
返回 下载 相关 举报
C#网络编程及应用 教学课件 ppt 作者 刘瑞新 第09章  网络协议与套接字编程 _第1页
第1页 / 共19页
C#网络编程及应用 教学课件 ppt 作者 刘瑞新 第09章  网络协议与套接字编程 _第2页
第2页 / 共19页
C#网络编程及应用 教学课件 ppt 作者 刘瑞新 第09章  网络协议与套接字编程 _第3页
第3页 / 共19页
C#网络编程及应用 教学课件 ppt 作者 刘瑞新 第09章  网络协议与套接字编程 _第4页
第4页 / 共19页
C#网络编程及应用 教学课件 ppt 作者 刘瑞新 第09章  网络协议与套接字编程 _第5页
第5页 / 共19页
点击查看更多>>
资源描述

《C#网络编程及应用 教学课件 ppt 作者 刘瑞新 第09章 网络协议与套接字编程 》由会员分享,可在线阅读,更多相关《C#网络编程及应用 教学课件 ppt 作者 刘瑞新 第09章 网络协议与套接字编程 (19页珍藏版)》请在金锄头文库上搜索。

1、第9章 网络协议与套接字编程,9.1 进程和线程 9.2 C#中线程的开发 9.3 TCP/IP网络协议 9.4 套接字编程技术 9.5 数据流,9.1 进程和线程,基本概念 进程 在Windows中,系统能够同时运行多个程序,每一个正在运行的程序称为一个进程 线程 同一个进程又可以分成若干个独立的执行流,我们称之为线程。 线程是操作系统向其分配处理器时间的基本单位。 线程可执行进程的任何一部分代码,包括当前由另一线程执行的部分。 并行性(并发处理) 并发处理指计算机真正的或者是表面上呈现的同时处理。 进程、线程和并行性在程序开发中的作用,程序实例(进程的使用) 创建一个C# Windows应

2、用程序,设计界面如图,按钮事件: private void buttonStart_Click(object sender, System.EventArgs e) /启动Notepad.exe进程。 myProcess.Start(); ,private void buttonStop_Click(object sender, System.EventArgs e) Process myProcesses; /创建新的Process组件的数组,并将它们与指定的进 /程名称(Notepad)的所有进程资源相关联。 myProcesses = Process.GetProcessesByName

3、(“Notepad“); foreach (Process instance in myProcesses) /设置终止当前线程前等待的毫秒数 instance.WaitForExit(1000); instance.CloseMainWindow(); ,private void buttonView_Click(object sender, System.EventArgs e) this.listBox1.Items.Clear(); Process processes; /创建Process类型的数组,并将它们与系统内所有进程相关联 processes = Process.GetPro

4、cesses(); foreach (Process p in processes) /将每个进程名和进程开始时间加入listBox1中 this.listBox1.Items.Add(p.ProcessName+“ “+p.StartTime.ToShortTimeString(); ,9.2 C#中线程的开发,基本概念(操作) 1. 启动线程 2. 让线程休眠 3. 销毁线程 4. ThreadState属性 5. 线程的优先级 6.线程池,程序实例(启动线程) using System; using System.Threading; class TestThread public st

5、atic void Main() Thread thread1=new Thread(new ThreadStart(Method1); Thread thread2=new Thread(new ThreadStart(Method2); thread1.Start(); thread2.Start(); Console.Read(); public static void Method1() for (int i=0;i1000;i+)Console.Write(“a“); public static void Method2() for (int i=0;i1000;i+) Consol

6、e.Write(“b“); ,9.3 TCP/IP网络协议,TCP/IP协议实际上是一组协议的总称,它是一个4层的网络体系结构(应用层、传输层、网络层、网络接口层),这个4层的网络体系结构包括100多个相互关联的协议,由于IP是网络层最主要的协议,TCP是传输层最主要的协议,因此简称为TCP/IP协议。,9.4 套接字编程技术,基本概念 IP地址和端口 IP地址 端口 套接字 面向连接的套接字 在面向连接的套接字中,使用TCP协议来建立两个IP地址端点之间的会话。一旦建立了这种连接,就可以在设备之间可靠的传输数据。为了建立面向连接的套接字,服务器和客户端必须分别进行编程。 面向无连接的套接字

7、无连接的套接字不需要在网络设备之间发送连接信息。因此,很难确定谁是服务器谁是客户机,面向连接的套接字 (上图) 面向无连接的 套接字编程(下图),9.4 套接字编程技术,基本概念 无阻塞编程技术 无阻塞套接字 当套接字是非阻塞模式的时候,就不会一直等待一个I/O方法的完成。 多路传输套接字 Socket类提供的Select()方法,这个方法用于多路传输多个套接字实例,以便找到一个已经准备好进行读或写的套接字。 异步套接字编程技术,9.4 套接字编程技术,程序实例一IPEndPoint类的使用 using System; using System.Net; class TestIPEndPoin

8、t public static void Main() IPAddress ip=IPAddress.Parse(“127.0.0.1“); IPEndPoint iep=new IPEndPoint(ip,8000); Console.WriteLine(“The IPEndPoint is:0“,iep.ToString(); Console.WriteLine(“The Address is:0“,iep.Address); Console.WriteLine(“The AddressFamily is:0“,iep.AddressFamily); Console.WriteLine(“

9、The max port number is:0“,IPEndPoint.MaxPort); Console.WriteLine(“The min port number is:0“,IPEndPoint.MinPort); Console.Read(); ,9.4 套接字编程技术,程序实例二使用套接字 using System; using System.Net; using System.Net.Sockets; class TestSocket public static void Main() IPAddress ip=IPAddress.Parse(“127.0.0.1“); IPE

10、ndPoint iep=new IPEndPoint(ip,8000); Socket socket=new Socket(AddressFamily.InterNetwork, SocketType.Stream,ProtocolType.Tcp); Console.WriteLine(“Blocking: 0“,socket.Blocking); Console.WriteLine(“Connected: 0“,socket.Connected); socket.Bind(iep); Console.WriteLine(“Local EndPoint: 0“,socket.LocalEnd

11、Point.ToString(); Console.Read();,9.5 数据流,基本概念 流 文件流 网络流 数据流的操作 读 写,9.5 数据流,程序实例 获取本地所有磁盘 string drives=Directory.GetLogicalDrives(); for(int i=0;idrives.Length;i+) /左对齐,宽度5位 Console.Write(“0,-5“,drivesi); 输出结果类似如下形式: A: C: D: E:,9.5 数据流,程序实例 获取C盘根目录下的所有子目录 string dirs=Directory.GetDirectories(“C:“)

12、; for(int i=0;idirs.Length;i+) Console.WriteLine(dirsi); ,程序实例 获取指定目录下的所有文件 string files=Directory.GetFiles(“C:“); for(int i=0;ifiles.Length;i+) Console.WriteLine(filesi); 获取当前目录 string currentPath=Directory.GetCurrentDirectory();,程序实例 文本文件的读写 using System; using System.IO; public class TestFileStre

13、am static void Main() StreamWriter sw = new StreamWriter(“MyFile.txt”,true, System.Text.Encoding.Unicode); sw.WriteLine(“第一条语句。”); sw.WriteLine(“第二条语句。“); sw.Close(); StreamReader sr=new StreamReader(“MyFile.txt“,System.Text.Encoding.Unicode); while(string str=sr.ReadLine()!=null) Console.WriteLine(str); sr.Close(); Console.ReadLine();,

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

当前位置:首页 > 高等教育 > 大学课件

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