欢迎来到天天文库
浏览记录
ID:57028413
大小:177.00 KB
页数:30页
时间:2020-07-26
《网络编程基础课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、ComputerNetworkFoundation计算机网络基础C#网络编程基础C#网络编程基础AddTitle套接字编程基本原理C#网络编程相关类的使用IPIPEndPointSocketNetStreamThreadIPAddress类System.Net命名空间下构造方式IPAddressip=IPAddress.Parse(“192.168.1.1”);属性Any提供一个IPv4地址,指示服务器应侦听所有网络接口上的客户端活动。(等效于0.0.0.0)Broadcast提供IPv4广播地址(等效于255.
2、255.255.255)Loopback表示IPv4回送地址(等效于127.0.0.1)IPEndPoint类System.Net命名空间下构造方式IPEndPoint(IPAddress,int);第一个参数指定IP地址,第二个参数指定端口号。套接字Socket一个连接由它的两个端点标识,这样的端点称为套接字。Socket套接字Socket套接字的数据结构协议族:PF_INET服务:SOCK_STREAM本地IP地址:***远程IP地址:***本地端口:***远程端口:***……0:*****1:*****……
3、进程套接字描述符表套接字Socket类型流式套接字:TCP数据报套接字:UDP原始套接字:用于直接访问协议的较低层。IPSocket类在System.Net.Sockets命名空间中Socket类的构造函数为:publicSocket(AddressFamilyaddressFamily,//网络类型SocketTypesocketType,//套接字类型ProtocolTypeprotocolType);//使用的协议Socket类AddressFamily表示网络类型,该参数使用AddressFamil
4、y枚举指定Socket使用的寻址方案。AddressFamily.InterNetwork表示IPv4的地址。Socket类SocketType指定Socket的类型,该参数使用SocketType枚举指定使用哪种套接字。SocketType.Stream基于流套接字的SocketType.Dgram基于数据报套接字SocketType.Raw基于原始套接字Socket类protocolType指定Socket使用的协议,该参数使用ProtocolType枚举指定使用哪种协议。ProtocolType.Tcp表明
5、连接协议是TCPProtocolType.Udp表明连接协议是UDPProtocolType.Icmp表明底层协议是ICMPProtocolType.Raw表明底层协议时IPSocket类创建流式套接字Sockets=newSocket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp)创建数据报套接字Sockets=newSocket(AddressFamily.InterNetwork,SocketType.Dgram,Protocol
6、Type.Udp)面向连接的套接字编程Socket()Bind()Listen()Accept()Receive()Send()Close()Socket()Connect()Send()Receive()Close()服务器端客户端基于流式套接字,基于TCP面向连接的套接字编程服务器端创建套接字绑定端口开始循环监听请求接受连接请求接收数据发送数据关闭连接客户端创建套接字发送连接请求发送数据接收数据关闭连接网络数据发送与接收voidSocket.send(byte[])创建字节发送缓冲数组,往数组填充内容发送in
7、tSocket.receive(byte[])创建字节接收缓冲数组,接收并读取数组内容字符串与字节数组的转换byte[]Encoding.Default.GetBytes(Stringstr)StringEncoding.Default.GetString(byte[]data,intstrat,intlength)线程Thread线程:将一个进程划分为若干个独立的执行流,每一个执行流均称为一个线程。线程是CPU调度和分配的基本单位。每个进程都有一个主线程。除了主线程以外,还可以给一个进程分配若干个子线程,从而达
8、到多个任务并行执行的目的。Thread类System.Threading命名空间下。线程的常用操作:创建、启动、暂停、终止线程的创建无参数线程的创建Threadt1=newThread(线程名);有参数线程的创建Threadt2=newThread(线程名(Objectobj));线程名实际是应该是方法名,对应的方法中的代码叫线程体。Thread类线程的启动t1.Star
此文档下载收益归作者所有