《移动通信软件编程基础—JAVA语言》第12章.ppt_第1页
《移动通信软件编程基础—JAVA语言》第12章.ppt_第2页
《移动通信软件编程基础—JAVA语言》第12章.ppt_第3页
《移动通信软件编程基础—JAVA语言》第12章.ppt_第4页
《移动通信软件编程基础—JAVA语言》第12章.ppt_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

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

文档简介

知识回顾,12,网络编程,第,章,本章目标,网络编程的基本概念,编写UDP网络程序,编写TCP网络程序,网络通信,进行通信的计算机的地址:IP地址进行通信的计算机的规则:TCP协议通信应用程序所在通信端口,UDP和TCP协议,TCP(传输控制协议)是面向连接的通信协议:TCP提供两台计算机之间的可靠无差别的数据传输。应用程序利用TCP进行通信时,源和目标之间会建立一个虚拟的连接,连接一旦建立,两台计算机之间就可以把数据当作一个双向字节流进行交换。,建立连接通话结束通话,UDP/TCP协议,UDP(用户数据报协议)是无连接通信协议。UDP不保证数据的可靠传输,但能实现向多个目标发送数据,并可以实现接收多个源的数据。使用UDP协议从一台主机向另外一台主机发送数据,数据就会立即发送,而不管另外一台主机是否准备接收,另外一台主机也不会确认是否收到。,TCP协议和UDP协议的差别,Socket套接字,Socket是网络驱动层提供给应用程序编程的接口和一种机制。Java网络编程在很大程度上就是套接字(Socket)编程。套接字是让用户与网络通信的一种对象,它并不是物理设备,可以将其理解为网络连接的端点。,Socket套接字,Socket发送信息的工作机制:Socket在应用程序中创建,通过一种绑定机制与网络驱动程序建立关系,明确所对应的IP和Port。应用程序将要传递的数据作为参数传入Socket对象,由Socket对象交给网络驱动程序,并向网络上发送。,应用程序,Socket,网络驱动程序,产生Socket,将Socket信息通知给驱动程序,应用程序将要发送的数据传给Socket,从Socket取出数据并通过网卡发送出去,Java编写UDP网络程序,UDP协议是无连接的协议,它以数据报作为数据传输的载体。数据报是一个在网络上发送的独立信息,它的到达、到达时间以及内容本身等都不能得到保证。数据报的大小是受限制的,每个数据报的大小限定在64KB以内。对于一些不需要很高质量、实时性要求很高的应用程序来说,适合利用UDP协议传输。数据报在网上可以以任何可能的路径传往目的地。,DatagramSocket类,DatagramSocket类表示用来发送和接收数据报包的套接字。每个在DatagramSocket上发送或接收的包都是单独编址和路由的。在DatagramSocket上总是启用UDP广播发送。为了接收广播包,应该将DatagramSocket绑定到通配符地址。DatagramSocket类所在包:,DatagramPacket类,DatagramPacket类表示数据报包。用来实现无连接包投递服务。每条报文仅根据该包中包含的信息从一台机器路由到另外一台机器。发送中的多个包可能选择不同的路由,也可能按不同的顺序到达。不对包投递做出保证。DatagramPacket类所在包:,InetAddress类,InetAddress类可以用于标识网络上的硬件资源,它提供了一系列方法以描述、获取及使用网络资源。InetAddress类没有构造方法,因此不能用new来构造一个InetAddress实例。,实现简单的UDP程序,/实现数据发送.*;publicclassUDPSendpublicstaticvoidmain(Stringargs)throwsExceptionDatagramSocketds=newDatagramSocket();StringStrHello=Helloworld!;DatagramPacketdp=newDatagramPacket(StrHello.getBytes(),StrHello.length(),InetAddress.getByName(0),2000);ds.send(dp);ds.close();,实现简单的UDP程序,/实现数据接收.*;publicclassUDPReceivepublicstaticvoidmain(Stringargs)throwsExceptionDatagramSocketds=newDatagramSocket(2000);bytebuf=newbyte1024;DatagramPacketdp=newDatagramPacket(buf,1024);ds.receive(dp);StringStrRecv=newString(dp.getData(),0,dp.getLength()+from+dp.getAddress().getHostAddress()+:+dp.getPort();System.out.println(StrRecv);ds.close();,Java编写TCP网络程序,TCP协议是基于连接的协议,在正式收发数据前,必须和对方建立可靠的连接。TCP协议能为应用程序提供可靠的通信连接,适合对可靠性要求高的数据通信系统使用。利于TCP协议进行通信需要建立一个服务器端和一个客户端。就是我们常见的C/S模式。其中发起通信的称为客户端,服务器端只是等待请求后应答。,ServerSocket类,ServerSocket类实现服务器socket。一个服务器socket等待从网络上来的请求。它执行某些基于请求的操作,然后可能返回一个结果给请求者。ServerSocket类所在的包:.,Socket类,Socket类实现客户端套接字(也可以就叫“套接字”)套接字是两台机器之间的通信端点,简单TCP通信程序,简单TCP通信程序,通信过程实现步骤如下:服务器程序创建一个ServerSocket对象,然后调用accept()等待客户来连接。客户端创建一个Socket对象,并请求连接。服务器接收到客户的连接请求,并创建一个Socket对象与该客户端建立专线连接。建立一个连接的两个Socket对象在一个单独的线程上对话。服务器端开始等待新的连接请求。,实现TCP通信的服务器端,ServerSocketSS=newServerSocket(6000);SocketS=SS.accept();InputStreamInInfo=S.getInputStream();OutputStreamOutInfo=S.getOutputStream();OutInfo.write(“WelcometoBU3G!”.getBytes();bytebuf=newbyte1024;intLen=InInfo.read(buf);System.out.println(newString(buf,0,Len);InInfo.close();OutInfo.close();S.close();SS.close();,TCP网络程序客户端,SocketS=newSocket(InetAddress.getByName(0),6000);InputStreamInInfo=S.getInputStream();OutputStreamOutInfo=S.getOutputStream();OutInfo.write(OK!.getBytes();bytebuf=newbyte1024;intLen=InInfo.read(buf);System.out.println(newString(buf,0,Len);InInfo.close();OutInfo.close();S.close();,简单TCP通信程序,简单TCP通信程序操作演示,通过控制台实现TCP通信程序,publicclassTcpServerpublicstaticvoidmain(Stringargs)tryServerSocketSS=newServerSocket(6000);while(true)SocketS=SS.accept();ThreadrunServer=newThread(newTcpServicer(S);runServer.start();catch(Exceptione)e.printStackTrace();,通过控制台实现TCP通信程序,实现线程,功能为读取从客户端传来的信息,并将信息加工后返回到客户端,InputStreamInInfo=S.getInputStream();OutputStreamOutInfo=S.getOutputStream();/将输入信息放入缓冲流/将输出信息放置到数据过虑流while(true)StringstrInfo=BufferInfo.readLine();StringstrEcho=(newStringBuffer(strInfo).reverse().toString();DataInfo.writeBytes(strInfo+-+strEcho+rn);S.close();,TCP网络程序客户端,SocketS=newSocket(InetAddress.getByName(args0),Integer.parseInt(args1);InputStreamInInfo=S.getInputStream();OutputStreamOutInfo=S.getOutputStream()

温馨提示

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

评论

0/150

提交评论