《物联网系统设计与应用开发》课件6-3 任务3 面向连接的TCP同步Socket通信_第1页
《物联网系统设计与应用开发》课件6-3 任务3 面向连接的TCP同步Socket通信_第2页
《物联网系统设计与应用开发》课件6-3 任务3 面向连接的TCP同步Socket通信_第3页
《物联网系统设计与应用开发》课件6-3 任务3 面向连接的TCP同步Socket通信_第4页
《物联网系统设计与应用开发》课件6-3 任务3 面向连接的TCP同步Socket通信_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

目录任务目标01相关知识点02任务实施03任务目标(1)了解TCP协议的特点。(2)理解套接字工作原理。(3)会建立面向连接的Socket(TCP方式)通信方式。相关知识1、Socket简介(1)Socket的英文原义是“孔”或“插座”。作为通信机制,Socket通常也称作"套接字",用于描述IP地址和端口,是一个通信链的句柄,用来实现不同虚拟机或不同计算机之间的通信。网络上的两个计算机(或程序)通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个socket。(2)Socket是支持TCP/IP协议的网络通信的基本操作单元,它是网络通信过程中端点的抽象表示,包含进行网络通信必须的五种信息:连接使用的协议、本地主机的IP地址、本地进程的协议端口、远地主机的IP地址和远地进程的协议端口。(3)在Internet上的主机一般运行了多个服务软件,同时提供几种服务。每种服务都打开一个Socket,并绑定到一个端口上,不同的端口对应于不同的服务。相关知识2、Socket通信流程使用Socket通信流程如图6-12所示。首先建立一个套接字,并绑定本机的IP和端口作为服务器端,使用Listen()方法来监听网络上是否有客户端给服务器端发送数据。然后建立客户端套接字连接服务器端。服务端监听到客户端连接请求,使用accept来接收这个连接,最后就可以利用Send/Receive来执行操作了。相关知识图6-12Socket通信流程图相关知识任务实施1.开发内容本任务实现服务器端和客户端的通信,程序设计包括服务器端和客户端两个方面。1)服务器端开发流程(1)创建SocketSever控制台程序。(2)引入命名空间System.Net.Sockets。(3)根据图6-12给出的服务器端系统通信流程编写代码。服务器端参考代码如下:

任务实施服务器端privatevoidbutton1_Click(objectsender,EventArgse)namespaceSocketSever{classProgram{staticvoidMain(string[]args){SocketlocalSocket=newSocket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp);//建立服务器端SocketIPEndPointiep=newIPEndPoint(IPAddress.Parse(""),1000);//服务器端IP端口1000localSocket.Bind(iep);//绑定本机的IP和端口localSocket.Listen(10);//监听Console.WriteLine("服务端开始监听。。。。");SocketclientSocket=localSocket.Accept();//当有可用的客户端连接尝试时执行,并返回一个新的socket,用于与客户端之间的通信byte[]bys=newbyte[1024];//存放服务端接收到客户端的信息Console.WriteLine("客户端已连接");clientSocket.Send(Encoding.Default.GetBytes("welcome"));//服务器端向客户端发送消息"welcome"while(true){intrecv=clientSocket.Receive(bys);//Socket读取数据if(recv==0)//当客户端主动自愿断开连接时recv=0break;Console.WriteLine(Encoding.Default.GetString(bys,0,recv));//输出接收到客户端的信息}clientSocket.Close();localSocket.Close();//关闭服务端}}}任务实施2)客户端开发流程(1)创建SocketClient控制台程序。(2)引入命名空间System.Net.Sockets。(3)根据图6-12给出的客户端流程图编写代码。客户端参考代码如下:

任务实施客户端

/*同步TCP通信客户端*/namespaceSocketClient{classProgram{staticvoidMain(string[]args){IPAddressremoteHost=IPAddress.Parse("");//建立一个套接字IPEndPointiep=newIPEndPoint(remoteHost,1000);/*服务器地址与端口*/SocketlocalSocket=newSocket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp);/*客户端Socket*/localSocket.Connect(iep);/*连接服务器端*/byte[]bys=newbyte[1024];/*存放服务器发送的数据*/intrecv=localSocket.Receive(bys);/*客户端接收服务器数据*/stringstr=Encoding.Default.GetString(bys,0,recv);/*将服务器返回数据转化成字符串*/Console.WriteLine(str);/*显示服务器返回数据*/stringmsg;/*声明存放用户输入的信息*/do{msg=Console.ReadLine();/*获取输入数据*/bys=Encoding.Default.GetBytes(msg);/*将字符串转化成byte数组输出*/localSocket.Send(bys);/*向服务器端发送数据*/}while(msg!="exit");/*当输入exit自愿断开连接*//*禁止下次数据读取和写入参数:SocketShutdown.Receive禁止下次数据读取SocketShutdown.Send禁止下次数据写入*/localSocket.Shutdown(SocketShutdown.Both);/*在关闭客户端Socket*/localSocket.Close();}}}结果验证分别启动服务器端和客户端程序,在客户端输入helloSever,按回车键,服务端中显示客户端所发送的消息,如图6-13所示。图6-13客户端向服务端发送数据感谢观看THANKYOUPleasereplacetext,clickaddrelevantheadline,modifythetextcontent,alsocancopyyourcontenttothisdirectly.Pleasereplacetext,clickaddrelevanthea

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论