欢迎来到天天文库
浏览记录
ID:50041044
大小:100.50 KB
页数:35页
时间:2020-03-08
《C#网络编程及应用 教学课件 作者 刘瑞新第10章 TCP协议开发 .ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第10章TCP协议开发10.1相关概念10.2定义与获取主机信息10.3同步套接字编程10.4同步套接字开发举例——简单聊天程序10.5使用TcpClient和TcpListener简化TCP编程10.6异步套接字编程10.7异步套接字开发举例10.1基本概念基本概念(相关概念)同步发送方将数据包发送到网络上以后,不等接收方响应,就接着发送下一个数据包。异步发送方将数据包发送到网络上以后,等接收方做出响应后,才接着发送下一个数据包。-同步套接字在通过Socket进行连接、接收、发送操作时,客户机或服务器会暂停当前工作,处于等待状态,即一直等到有数据时才继续
2、执行下面的语句。一般在阻塞方式下使用这种方式。可见,同步套接字适用于网络传输量不太大的情况。当网络传输量很大时,长时间的等待可能会让用户无法忍受。-异步套接字在通过Socket进行连接、接收、发送操作时,客户机或服务器不会暂停当前工作,而是利用callback机制进行连接、接收和发送处理。异步套接字适用于需要在网络上进行大量数据传输的应用程序,比如有几万客户同时传输的情况。10.2定义与获取主机信息定义主机对象IPEndPoint类IPAddress类获取主机信息Dns类中常用方法Dns.GetHostName()Dns.GetHostByName(str
3、inghostname)Dns.GetHostByAddress(address)Dns.Resolve()1.定义主机对象IPEndPoint类包含应用程序连接到主机上的服务所需的主机和端口信息。通过组合服务的主机IP地址和端口号,IPEndPoint类形成到服务的连接点。常用的方法原型:publicIPEndPoint(IPAddressaddress,intport);说明:address:IP地址port:端口号功能:初始化IPEndPoint类的实例。用法举例:IPAddressmyServerIP=newIPAddress.Parse(“127
4、.0.0.1”);IPEndPointmyServer=newIPEndPoint(myServerIP,13);2.主机解析程序实例——Dns.Resolve()的使用usingSystem;usingSystem.Net;publicclassTestFileStream{staticvoidMain(){Console.Write("输入主机名或者IP地址:");stringstr=Console.ReadLine();IPHostEntryhost=Dns.Resolve(str);for(inti=0;i5、gth;i++){Console.WriteLine(host.AddressList[i].ToString());Console.WriteLine(host.HostName);}Console.ReadLine();}}10.3同步套接字编程1.服务器端口绑定与监听在服务器与客户机连接传输数据前,服务器需要做以下事情:1)创建一个套接字。2)创建本地IPEndPoint对象。3)使用Bind()方法将所创建的套接字与本地IPEndPoint绑定。4)使用Listen()方法设置套接字为监听模式。5)使用Accept()方法接收客户端连接请求并为客户6、端创建一个客户端套接字。实现方法usingSystem.Net;usingSystem.Net.Sockets;……IPAddressip=IPAddress.Parse("127.0.0.1");IPEndPointiep=newIPEndPoint(ip,6788);Socketsocket=newSocket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp);socket.Bind(iep);socket.Listen(10);//最多允许10个客户端同时连接while(tr7、ue){SocketclientSocket=socket.Accept();……}2.客户端建立与服务器的连接客户端在传送数据前,只需要做两件事:1)创建一个套接字。2)使用Socket类的Connect()方法将套接字与远程服务器地址相连。IPAddressip=IPAddress.Parse("202.196.101.246");//服务器IPIPEndPointiep=newIPEndPoint(ip,6788);Socketsocket=newSocket(AddressFamily.InterNetwork,SocketType.Stream,8、ProtocolType.Tcp);socket.Connect(
5、gth;i++){Console.WriteLine(host.AddressList[i].ToString());Console.WriteLine(host.HostName);}Console.ReadLine();}}10.3同步套接字编程1.服务器端口绑定与监听在服务器与客户机连接传输数据前,服务器需要做以下事情:1)创建一个套接字。2)创建本地IPEndPoint对象。3)使用Bind()方法将所创建的套接字与本地IPEndPoint绑定。4)使用Listen()方法设置套接字为监听模式。5)使用Accept()方法接收客户端连接请求并为客户
6、端创建一个客户端套接字。实现方法usingSystem.Net;usingSystem.Net.Sockets;……IPAddressip=IPAddress.Parse("127.0.0.1");IPEndPointiep=newIPEndPoint(ip,6788);Socketsocket=newSocket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp);socket.Bind(iep);socket.Listen(10);//最多允许10个客户端同时连接while(tr
7、ue){SocketclientSocket=socket.Accept();……}2.客户端建立与服务器的连接客户端在传送数据前,只需要做两件事:1)创建一个套接字。2)使用Socket类的Connect()方法将套接字与远程服务器地址相连。IPAddressip=IPAddress.Parse("202.196.101.246");//服务器IPIPEndPointiep=newIPEndPoint(ip,6788);Socketsocket=newSocket(AddressFamily.InterNetwork,SocketType.Stream,
8、ProtocolType.Tcp);socket.Connect(
此文档下载收益归作者所有