移动通信软件编程基础JAVA语言

上传人:xt****7 文档编号:188708687 上传时间:2023-02-20 格式:PPT 页数:30 大小:876KB
收藏 版权申诉 举报 下载
移动通信软件编程基础JAVA语言_第1页
第1页 / 共30页
移动通信软件编程基础JAVA语言_第2页
第2页 / 共30页
移动通信软件编程基础JAVA语言_第3页
第3页 / 共30页
资源描述:

《移动通信软件编程基础JAVA语言》由会员分享,可在线阅读,更多相关《移动通信软件编程基础JAVA语言(30页珍藏版)》请在装配图网上搜索。

1、知识回顾知识回顾多线程多线程线程的基本概念线程的基本概念线程的实现方法线程的实现方法同步的实现同步的实现死锁及其解决方案死锁及其解决方案线程的基本概念线程的基本概念创建线程创建线程线程的状态线程的状态暂停线程的方法暂停线程的方法线程的优先级线程的优先级继承继承ThreadThread类类实现实现RunnableRunnable接口接口同步方法同步方法同步代码块同步代码块死锁死锁Wait-notifyWait-notify机制机制12网络编程第章本章目标本章目标网络编程的基本概念网络编程的基本概念编写编写UDPUDP网络程序网络程序编写编写TCPTCP网络程序网络程序网络通信网络通信 v进行通信

2、的计算机的地址:进行通信的计算机的地址:IPIP地址地址v进行通信的计算机的规则:进行通信的计算机的规则:TCPTCP协议协议v通信应用程序所在通信端口通信应用程序所在通信端口UDP和和TCP协议协议 vTCP(TCP(传输控制协议传输控制协议)是面向连接的通信协议:是面向连接的通信协议:vTCPTCP提供两台计算机之间的可靠无差别的数据传输。提供两台计算机之间的可靠无差别的数据传输。v应用程序利用应用程序利用TCPTCP进行通信时,源和目标之间会建立一进行通信时,源和目标之间会建立一个虚拟的连接,连接一旦建立,两台计算机之间就可以把个虚拟的连接,连接一旦建立,两台计算机之间就可以把数据当作一

3、个双向字节流进行交换。数据当作一个双向字节流进行交换。建立连接建立连接通话通话结束通话结束通话UDP/TCP协议协议 vUDP(UDP(用户数据报协议用户数据报协议)是无连接通信协议。是无连接通信协议。vUDPUDP不保证数据的可靠传输,但能实现向多个目标发送不保证数据的可靠传输,但能实现向多个目标发送数据,并可以实现接收多个源的数据。数据,并可以实现接收多个源的数据。v使用使用UDPUDP协议从一台主机向另外一台主机发送数据,数协议从一台主机向另外一台主机发送数据,数据就会立即发送,而不管另外一台主机是否准备接收,据就会立即发送,而不管另外一台主机是否准备接收,另外一台主机也不会确认是否收到

4、。另外一台主机也不会确认是否收到。TCP协议和协议和UDP协议的差别协议的差别 对比项对比项TCP协议协议UDP协议协议是否连接是否连接面向连接面向连接面向非连接面向非连接传输可靠性传输可靠性可靠的可靠的不可靠的不可靠的应用场合应用场合传输大量的数据传输大量的数据少量数据少量数据速度速度慢慢快快Socket套接字套接字 vSocketSocket是网络驱动层提供给应用程序编程的接口和一种是网络驱动层提供给应用程序编程的接口和一种机制。机制。vJavaJava网络编程在很大程度上就是套接字网络编程在很大程度上就是套接字(Socket)(Socket)编程。编程。套接字是让用户与网络通信的一种对象

5、,它并不是物理设套接字是让用户与网络通信的一种对象,它并不是物理设备,可以将其理解为网络连接的端点。备,可以将其理解为网络连接的端点。Socket套接字套接字 SocketSocket发送信息的工作机制:发送信息的工作机制:vSocketSocket在应用程序中创建,在应用程序中创建,通过一种绑定机制与网络驱动通过一种绑定机制与网络驱动程序建立关系,明确所对应的程序建立关系,明确所对应的IPIP和和PortPort。v应用程序将要传递的数据作应用程序将要传递的数据作为参数传入为参数传入SocketSocket对象,由对象,由SocketSocket对象交给网络驱动程序,对象交给网络驱动程序,并

6、向网络上发送。并向网络上发送。应用程序应用程序SocketSocket网络网络驱动程序驱动程序产生产生SocketSocket将将SocketSocket信息通知给信息通知给驱动程序驱动程序应用程序将应用程序将要发送的数要发送的数据传给据传给SocketSocket从从SocketSocket取出数据取出数据并通过网卡发送出并通过网卡发送出去去Java编写编写UDP网络程序网络程序 vUDPUDP协议是无连接的协议,它以数据报作为数据传输的协议是无连接的协议,它以数据报作为数据传输的载体。载体。数据报是一个在网络上发送的独立信息,它的到达、数据报是一个在网络上发送的独立信息,它的到达、到达时间

7、以及内容本身等都不能得到保证。到达时间以及内容本身等都不能得到保证。数据报的大小是受限制的,每个数据报的大小限定数据报的大小是受限制的,每个数据报的大小限定在在64KB64KB以内。以内。v对于一些不需要很高质量、实时性要求很高的应用程序对于一些不需要很高质量、实时性要求很高的应用程序来说,适合利用来说,适合利用UDPUDP协议传输。协议传输。v数据报在网上可以以任何可能的路径传往目的地。数据报在网上可以以任何可能的路径传往目的地。DatagramSocket类类 vDatagramSocketDatagramSocket类表示用来发送和接收数据报包的套接类表示用来发送和接收数据报包的套接字。

8、字。v每个在每个在DatagramSocketDatagramSocket上发送或接收的包都是单独编址上发送或接收的包都是单独编址和路由的。和路由的。v在在DatagramSocketDatagramSocket上总是启用上总是启用UDPUDP广播发送。为了接收广广播发送。为了接收广播包,应该将播包,应该将DatagramSocketDatagramSocket绑定到通配符地址。绑定到通配符地址。vDatagramSocketDatagramSocket类所在包:类所在包:构造方法构造方法说明说明DatagramSocket()构造数据报套接字并将其绑定到本地主机上任构造数据报套接字并将其绑定

9、到本地主机上任何可用的端口。何可用的端口。DatagramSocket(int port)创建数据报套接字并将其绑定到本地主机上的创建数据报套接字并将其绑定到本地主机上的指定端口。指定端口。DatagramSocket(int port ,InetAddress laddr)创建数据报套接字,将其绑定到指定的本地地创建数据报套接字,将其绑定到指定的本地地址。址。DatagramPacket类类 vDatagramPacketDatagramPacket类表示数据报包。用来实现无连接包投类表示数据报包。用来实现无连接包投递服务。递服务。v每条报文仅根据该包中包含的信息从一台机器路由到另每条报文仅

10、根据该包中包含的信息从一台机器路由到另外一台机器。外一台机器。v发送中的多个包可能选择不同的路由,也可能按不同的发送中的多个包可能选择不同的路由,也可能按不同的顺序到达。不对包投递做出保证。顺序到达。不对包投递做出保证。vDatagramPacketDatagramPacket类所在包:类所在包:构造方法构造方法说明说明DatagramPacket(byte buf,int length,InetAddress address,int port)构造数据报包,用来将长度为构造数据报包,用来将长度为 length 的包的包发送到指定主机上的指定端口号。发送到指定主机上的指定端口号。Datagra

11、mPacket(byte buf,int length)构造数据报包,用来接收长度为构造数据报包,用来接收长度为length的的数据包。数据包。InetAddress类类 vInetAddress类可以用于标识网络上的硬件资源,它提类可以用于标识网络上的硬件资源,它提供了一系列方法以描述、获取及使用网络资源。供了一系列方法以描述、获取及使用网络资源。vInetAddress类没有构造方法,因此不能用类没有构造方法,因此不能用new来构造来构造一个一个InetAddress实例。实例。方法方法说明说明static InetAddress getByName(String host)在给定主机名的

12、情况在给定主机名的情况下确定主机的下确定主机的 IP 地址地址static InetAddress getLocalHost()返回本地主机返回本地主机IP地址地址static InetAddress getAllByName(String host)在给定主机名的情况在给定主机名的情况下,根据系统上配置下,根据系统上配置的名称服务返回其的名称服务返回其 IP地址所组成的数组。地址所组成的数组。实现简单的实现简单的UDP程序程序/实现数据发送实现数据发送import.*;public class UDPSend public static void main(String args)throw

13、s Exception DatagramSocket ds=new DatagramSocket();String StrHello=Hello world!;DatagramPacket dp=new DatagramPacket(),InetAddress.getByName(),2000);ds.send(dp);();实现简单的实现简单的UDP程序程序 /实现数据接收实现数据接收import.*;public class UDPReceive public static void main(String args)throws ExceptionDatagramSocket ds=ne

14、w DatagramSocket(2000);byte buf=new byte1024;DatagramPacket dp=new DatagramPacket(buf,1024);ds.receive(dp);String StrRecv=new String(dp.getData(),0,dp.getLength()+from +dp.getAddress().getHostAddress()+:+();System.out.println(StrRecv);();JavaJava编写编写TCPTCP网络程序网络程序vTCPTCP协议是基于连接的协议,在正式收发数据前,必须协议是基于连接

15、的协议,在正式收发数据前,必须和对方建立可靠的连接。和对方建立可靠的连接。vTCPTCP协议能为应用程序提供可靠的通信连接,适合对可协议能为应用程序提供可靠的通信连接,适合对可靠性要求高的数据通信系统使用。靠性要求高的数据通信系统使用。v利于利于TCPTCP协议进行通信需要建立一个服务器端和一个客协议进行通信需要建立一个服务器端和一个客户端。就是我们常见的户端。就是我们常见的C/SC/S模式。其中发起通信的称为客模式。其中发起通信的称为客户端,服务器端只是等待请求后应答。户端,服务器端只是等待请求后应答。ServerSocketServerSocket类类vServerSocketServer

16、Socket类实现服务器类实现服务器socketsocket。一个服务器。一个服务器socketsocket等待从网络上来的请求。等待从网络上来的请求。v它执行某些基于请求的操作,然后可能返回一个结它执行某些基于请求的操作,然后可能返回一个结果给请求者。果给请求者。vServerSocketServerSocket类所在的包:类所在的包:.构造方法构造方法说明说明ServerSocket(int port)在指定的端口生成一个服务器在指定的端口生成一个服务器socket。0 号号端口指在任何空闲端口上生成端口指在任何空闲端口上生成 socket。ServerSocket(int port,in

17、t backlog)生成一个服务器生成一个服务器 socket,并且把它捆绑到指并且把它捆绑到指定的本地端口。定的本地端口。ServerSocket(int port,int backlog,InetAddress bindAddr)在指定的端口生成一个服务程序,监听要完在指定的端口生成一个服务程序,监听要完成的服务和要绑定的本地成的服务和要绑定的本地IP 地址。地址。SocketSocket类类vSocketSocket类实现客户端套接字(也可以就叫类实现客户端套接字(也可以就叫“套接字套接字”)v套接字是两台机器之间的通信端点套接字是两台机器之间的通信端点 构造方法构造方法说明说明Sock

18、et()通过系统默认创建未连接套通过系统默认创建未连接套接字接字Socket(String host,int port)创建一个流套接字并将其连创建一个流套接字并将其连接到指定主机上的指定端口接到指定主机上的指定端口号号Socket(InetAddress address,int port)创建一个流套接字并将其连创建一个流套接字并将其连接到指定接到指定 IP 地址的指定端地址的指定端口号口号简单简单TCPTCP通信程序通信程序简单简单TCPTCP通信程序通信程序通信过程实现步骤如下:通信过程实现步骤如下:服务器程序创建一个服务器程序创建一个ServerSocketServerSocket对象

19、,然后调用对象,然后调用accept()accept()等待客户来连接。等待客户来连接。客户端创建一个客户端创建一个SocketSocket对象,并请求连接。对象,并请求连接。服务器接收到客户的连接请求,并创建一个服务器接收到客户的连接请求,并创建一个SocketSocket对象与该客户端建立专线连接。对象与该客户端建立专线连接。建立一个连接的两个建立一个连接的两个SocketSocket对象在一个单独的线程对象在一个单独的线程上对话。上对话。服务器端开始等待新的连接请求。服务器端开始等待新的连接请求。实现实现TCPTCP通信的服务器端通信的服务器端 ServerSocket SS=new S

20、erverSocket(6000);Socket S=();InputStream InInfo=();OutputStream OutInfo=();OutInfo.write(“Welcome to BU3G!”.getBytes();byte buf=new byte1024;int Len=InInfo.read(buf);System.out.println(new String(buf,0,Len);();();();();TCPTCP网络程序客户端网络程序客户端 Socket S=new Socket(InetAddress.getByName(),6000);InputStre

21、am InInfo=();OutputStream OutInfo=();OutInfo.write(OK!.getBytes();byte buf=new byte1024;int Len=InInfo.read(buf);System.out.println(new String(buf,0,Len);();();();简单简单TCPTCP通信程序通信程序 简单简单TCPTCP通信程序操作演示通信程序操作演示 通过控制台实现通过控制台实现TCPTCP通信程序通信程序 public class TcpServer public static void main(String args)try

22、 ServerSocket SS=new ServerSocket(6000);while(true)Socket S=();Thread runServer=new Thread(new TcpServicer(S);();catch(Exception e)();通过控制台实现通过控制台实现TCPTCP通信程序通信程序v实现线程,功能为读取从客户端传来的信息,并将信息实现线程,功能为读取从客户端传来的信息,并将信息加工后返回到客户端加工后返回到客户端 InputStream InInfo=();OutputStream OutInfo=();/将输入信息放入缓冲流将输入信息放入缓冲流 /将

23、输出信息放置到数据过虑流将输出信息放置到数据过虑流while(true)String strInfo=();String strEcho=(new StringBuffer(strInfo).reverse().toString();DataInfo.writeBytes(strInfo+-+strEcho+rn);();TCPTCP网络程序客户端网络程序客户端Socket S=new Socket(InetAddress.getByName(args0),Integer.parseInt(args1);InputStream InInfo=();OutputStream OutInfo=()

24、;/将控制台输入的信息放置到缓冲区流将控制台输入的信息放置到缓冲区流BufferPressBufferPress /将输入流包装为数据过滤流将输入流包装为数据过滤流DataInfoDataInfo /将输出流包装为缓冲流将输出流包装为缓冲流BufferInfoBufferInfowhile(true)String strInfo=();DataInfo.writeBytes(strInfo+rn);();/关闭网络连接关闭网络连接TCPTCP网络通信程序网络通信程序 TCPTCP通信程序操作演示通信程序操作演示 总结总结网络编程网络编程引入网络编程引入网络编程编写编写UDPUDP网络程序网络程序编写编写TCPTCP网络程序网络程序TCP/IPTCP/IP网络程序的网络程序的IPIP地址和端口号地址和端口号UDPUDP与与TCPTCPSocketSocket套接字套接字DatagramSocketDatagramSocket类类DatagramPacketDatagramPacket类类简单的简单的UDPUDP程序程序用用UDPUDP编写聊天程序编写聊天程序ServerSocketServerSocket类类SocketSocket类类简单的简单的TCPTCP服务器程序服务器程序通过控制台实现的通过控制台实现的TCPTCP通信程序通信程序习题习题作业作业

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!