Socket通信程序设计.ppt_第1页
Socket通信程序设计.ppt_第2页
Socket通信程序设计.ppt_第3页
Socket通信程序设计.ppt_第4页
Socket通信程序设计.ppt_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

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

文档简介

2套接字通信程序设计,文志强zhqwen20001学院计算机与通信,基本内容,2.1套接字通信原理,2.2套接字网络编程,2.3项目实战,2.1套接字通信原理,IP地址:主机标识端口:服务类型,Socket=IP(地址)端口(服务器),Socket通信首先强调发送方和接收方的区别。同时,它还指定了服务器和客户端之间的区别。客户端必须知道服务器的地址和端口才能申请连接。服务器从收到的数据消息中读取客户端的地址和端口套接字,确定服务器和客户端的地址、端口和协议,并使用java.io实现数据传输。Socket程序的基本机制。Java - Internet语言具有强大的网络通信功能。它基于套接字通信模式,流套接字,TCP协议,UDP协议,数据报套接字,Java套接字属于流套接字通信,采用TCP协议,提供面向连接的服务,实现可靠的通信。JavaSocket,J提供了两个类来实现Socke通信:Socket编程是一个低级的网络编程,功能强大,提供的功能比网址网络编程更多,控制更灵活,具有更高的复杂性。服务器套接字(SERVER SOCKET-SERVER SOCKET-CUSTOMER),需要借助java.io包InputStream/OutputStream来完成TCP套接字发送和接收的操作,这两个操作分别通过以下方法实现:SOCKET。GET InputStream ()/SOCKET。获取输出流(),套接字/服务器套接字构造函数Socket()通过系统默认类型的SocketImpl套接字(InetAddressaddress,intport)创建一个未连接的套接字,以创建流套接字并将其连接到指定的IP地址的指定端口号套接字(inetaddressaddress)。Intport,inetaddresslocaladdr,int localport)创建一个套接字,并将其连接到指定远程端口上的指定远程地址套接字(stringhast,intport)。创建一个流套接字并将其连接到指定的端口号套接字(stringhast,intport,InetaddressLocaladdr(int local port)创建一个套接字并将其连接到指定远程主机上的指定远程端口,ServerSocket()创建一个未绑定的ServerSocket(intport)创建一个绑定到特定端口的ServerSocket(intport)。Intbacklog)使用指定的backlog创建一个服务器套接字,并将其绑定到指定的本地端口号serversocket (intport,intbacklog,inetaddressbinddr)使用指定的端口,侦听backlog和要绑定到创建服务器的本地IP地址。Socket/ServerSocket是主要的通信方式,JavaSocket的通信原理,这两种通信程序分别是客户机/服务器。客户端程序申请连接,服务器端程序监听所有端口以确定是否有来自客户端程序的服务请求。当客户端程序请求连接到端口时,服务器程序将“套接字”连接到端口。此时,客户机/服务器程序建立虚拟连接。客户端程序将请求写入套接字,服务器程序处理该请求,并将处理结果通过套接字发送回客户端。在通信结束时,拆除虚拟连接。Socket网络通信程序由三个基本部分组成:(1)建立连接:在通信开始之前,通信双方建立一个特殊的虚拟连接通道(2)数据通信:使用虚拟连接通道传输通信数据信息(3)移除连接:当通信结束时,移除已建立的虚拟连接。,2.2套接字网络编程,服务器端,客户端,服务=服务套接字(端口号)创建服务对象,实现端口监控套接字=服务器套接字。accept()使用TCP服务创建套接字对象,接收用户访问请求,Socket=Socket(端口号)创建套接字对象,建立连接,并发送访问请求。输入流套接字对象输入流输出流套接字对象输出流通过套接字对象实现与客户端的数据传输。输出流套接字对象输出流套接字对象输入流套接字对象输入流通过套接字对象实现与服务器的数据传输。套接字关闭()关闭套接字关闭与客户端服务的连接。关闭()关闭侦听器。Socket.close()关闭Socke以结束与服务器端的连接,(1)建立连接,(2)数据通信,(3)断开连接,Socke通信机制,输出Stream获取Socke对象输出流,SOCKE通信机制,构建,建立,建立,S,o,c,k,e,t,通过流连接,接收和传输数据,服务器端,连接成功获取连接的Socket对象,Socket(主机,端口)创建Socket对象并向指定的主机端口,客户端,Socket对象发送连接请求, 服务器套接字对象,输入流获取套接字对象输入流,应用程序,连接,连接,连接,连接,服务套接字. close()停止提供TCP连接服务,服务器套接字对象和套接字对象,套接字对象,套接字. close()关闭TCP连接,服务套接字(端口)创建服务对象并提供TCP连接服务。 Accept()请求在指定的端口监视器客户端创建连接,InputStream获取Socket对象输入流,Socket.close()关闭TCP连接,OutputStream获取Socket对象输出流、ServerSocket对象、访问监视,使用构造函数创建服务器库e/socket两个对象,建立双向连接,并引入异常处理机制建立I/O流以实现读/写数据流释放连接,ServerSocket程序的基本框架,JavaServerSocket,Socket创建服务器的典型工作流:(1)创建具有指定端口的ServerSocket对象。(2)2)ServerSocket对象调用accept()方法来创建Socket对象。实现端口监控连接请求。-但是accept()接收客户端连接请求并返回连接客户端和服务器的Socket对象,然后建立双方的虚电路。(3)调用getInputStream()方法和getOutputStream()方法,获取Socket对象的输入流和输出流。(4)服务器和客户端根据协议进行数据交互。(5)直到一端请求关闭连接,服务器和客户端之间的连接才结束。(6)服务器返回到步骤2,并继续监控下一个连接。当客户结束时。import Java . io . *;*;PublicClassTCPserver staticpublicatvironmain(Strings) try ServerSocketsVRSoc=NewServerSocket(8000);sockesoc=SVR SOC . accept();输入数据流=SOC . GetInputStream();/套接字输入流datainputstream=new datainputstream(is);OutputStreamos=SOC . GetOutputStream();/套接字输出流print stream out=new print stream(OS);/*服务器创建输入流对象输入和输出流对象输出,接收客户输入信息(输入)并将信息(输出)发送给客户。类似地,客户端也创建两个对象来与服务器双向通信。来自服务器的输出流信息成为客户输入信息,客户输出的信息被发送到服务提供商的输入流。*/InetAddressClientIP=SOC。getInetAddress();系统。出去。println( ClientSipAddress : ClientIP);内部端口=SOC。GetPort();/得到客户方的端口系统。出去。println(Clientsport : 端口);打印出来(”欢迎!”;字符串str=in。ReadLine();/在输入流对象在中读一行同时(!字符串等于(”退出”系统输出打印输入(”客户端: str);str=in。ReadLine();系统输出打印输入(”客户关机);捕捉(异常一)系统。出去。println(“错误:”e);最后是。关闭();/关闭输入流操作系统。关闭();/关闭输出流足球。关闭();/关闭插座,拆除链路高级副总裁。关闭();/关闭监听,停止服务、1、创建指定端口的服务器套接字对象,2,调用接受()方法监听端口连接请求,3-1 ,插座绑定客户知识产权地址和端口3-2、调用getInputStream()或getOutputStream()方法获得窝对象的输入流和输出流,4,服务器与客户端连接根据协议交互数据,5,请求关闭连接,服务器和客户端连接终止,6,停止该用户传输控制协议连接服务,服务器套接字程序,JavaSocket,Socket创建一个客户端的典型工作流程(1)创建一个指定地址和端口的窝对象,建立服务器与客户端连接(2)调用getInputStream()方法或getOutputStream()方法获得窝对象的输入流和输出流(3)服务器与客户端连接根据协议交互数据(4)请求关闭连接,服务器和客户端连接终止嘿。*;导入Java。io。*;PublicClassTCPclient staticpublicatvironmain(Strings) try Socketsoc=NewSocket( localhost ,8000);System.out.println(连接到服务器.);输入数据流=足球。getInputStream();输出数据流=片上系统。getOutputStream();数据输入数据流=新数据输入数据流(is);打印流输出=新打印流(操作系统);string strin=in。ReadLine();System.out.println(服务器端: strin);字节msg=新字节20;系统输入读取(bmsg).Stringmsg=newString(bmsg,0);味精=味精。trim();同时(!味精。等于(退出)/从键盘循环读入,直到输入退出为止出去。println(msg);系统输入读取(bmsg).msg=newString(bmsg,0);味精=味精。trim();出去。println(msg);捕捉(异常一)系统。出去。println(“错误:”e);最后是。关闭();/关闭输入流操作系统。关闭();/关闭输出流足球。关闭();/关闭插座,拆除链路系统。退出(0);、1、创建指定地址和端口的窝对象建立服务器与客户端连接,2,调用getInputStream()或getOutputStream()方法获得窝对象的输入流和输出流,3,服务器与客户端连接根据协议交互数据,4,关闭请求连接,服务器和客户端连接终止,客户机套接字程序插座通信编程-异常处理,服务器套接字和窝编程需要进行试捕异常处理(1)服务器端:服务器套接字服务器.插座插座请尝试服务器=新闻服务器套接字(端口);socket=服务器。接受();.捕捉(异常一)系统。出去。println(出现错误* e ;(2)客户端:Socketsocket尝试套接字=新闻套接字(”服务器名,端口);捕捉(异常一)系统。出去。println(出现错误* e ;,建立窝连接后,利用方法getOutputStream()和getInputStream()建立向窝读写数据的输入/输出流。需要进行试捕异常处理请尝试 InputStreamins=套接字。getInputStream();output StreamOutts=套接字。getOutputStream();捕捉(异常一)系统。出去。println(“错误发生3360”e);,Socke通信编程建立输入/输出输出流,获取窝的输入/输出流后,需要对两个流对

温馨提示

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

评论

0/150

提交评论