Java程序设计项目教程模块5-网络编程.ppt

上传人(卖家):三亚风情 文档编号:3372403 上传时间:2022-08-24 格式:PPT 页数:48 大小:1.06MB
下载 相关 举报
Java程序设计项目教程模块5-网络编程.ppt_第1页
第1页 / 共48页
Java程序设计项目教程模块5-网络编程.ppt_第2页
第2页 / 共48页
Java程序设计项目教程模块5-网络编程.ppt_第3页
第3页 / 共48页
Java程序设计项目教程模块5-网络编程.ppt_第4页
第4页 / 共48页
Java程序设计项目教程模块5-网络编程.ppt_第5页
第5页 / 共48页
点击查看更多>>
资源描述

1、Java程序设计模块模块5网络编程网络编程5.1 获取网络信息 项目项目34 获取网络域名或获取网络域名或IPnInetAddress类:表示互联网协议(IP)地址 nIP 地址 IP 使用 32 位或 128 位的无符号数字IP协议是一种基础协议UDP 和 TCP 协议都是在它的基础上构建的nInetAddress 的实例包含 IP 地址,还可能包含相应的主机名(取决于它是否用主机名构造或者是否已执行反向主机名解析)5.1 获取网络信息 项目项目34 获取网络域名或获取网络域名或IP表表5-1 InetAddress类常用方法类常用方法boolean equals(Object obj)将此

2、对象与指定对象比较。boolean isLoopbackAddress()检查 InetAddress 是否是回送地址的实用例行程序。boolean isReachable(int timeout)测试是否可以达到该地址。boolean isReachable(NetworkInterface netif,int ttl,int timeout)测试是否可以达到该地址。boolean isSiteLocalAddress()检查 InetAddress 是否是站点本地地址的实用例行程序。5.1 获取网络信息 项目项目34 获取网络域名或获取网络域名或IP表表5-1 InetAddress类常用

3、方法类常用方法byte getAddress()返回此 InetAddress 对象的原始 IP 地址。static InetAddressgetByAddress(byte addr)在给定原始 IP 地址的情况下,返回 InetAddress 对象。static InetAddressgetByAddress(String host,byte addr)根据提供的主机名和 IP 地址创建 InetAddress。static InetAddress getByName(String host)在给定主机名的情况下确定主机的 IP 地址。5.1 获取网络信息 项目项目34 获取网络域名或获取

4、网络域名或IP表表5-1 InetAddress类常用方法类常用方法static InetAddress getLocalHost()返回本地主机。static InetAddress getAllByName(String host)在给定主机名的情况下,根据系统上配置的名称服务返回其 IP 地址所组成的数组。String getHostAddress()返回 IP 地址字符串(以文本表现形式)。String getHostName()获取此 IP 地址的主机名。String toString()将此 IP 地址转换为 String。5.1 获取网络信息 项目项目34 获取网络域名或获取网络

5、域名或IPgetLocalHost()getHostName()getHostAddress()5.1 获取网络信息 项目项目34 获取网络域名或获取网络域名或IP【应用拓展应用拓展】getLocalHost()getCanonicalHostName()isLoopbackAddress()getHostAddress()getHostName()5.1 获取网络信息项目项目35 获取网络属性信息获取网络属性信息n类 URL 代表一个统一资源定位符是指向互联网“资源”的指针n文件或目录n对对象的引用例如对数据库或搜索引擎的查询n 可选择指定一个“端口”,它是用于建立到远程主机 TCP 连接的

6、端口号n如果未指定该端口号,则使用协议默认的端口。例如,http 协议的默认端口为 80。n应用程序可以指定一个“相对 URL”它只包含到达相对于另一个 URL 的资源的足够信息HTML 页面中经常使用相对 URL 5.1 获取网络信息项目项目35 获取网络属性信息获取网络属性信息n相对 URL 不需要指定 URL 的所有组成部分如果缺少协议、主机名称或端口号,这些值将从完整指定的 URL 中继承必须指定文件部分可选的片段部分不继承。URL 类自身并不根据 RFC2396 中定义的转义机制编码或解码任何 URL 部分n由调用方对任何需要在调用 URL 前进行转义的字段进行编码,并对从 URL

7、返回的任何经过转义的字段进行解码。5.1 获取网络信息项目项目35 获取网络属性信息获取网络属性信息表表5-2 URL类常用方法类常用方法 boolean equals(Object obj)比较此 URL 是否等于另一个对象。String getAuthority()获得此 URL 的授权部分。Object getContent()获得此 URL 的内容。Object getContent(Class classes)获得此 URL 的内容。int getDefaultPort()获得与此 URL 关联协议的默认端口号。String getFile()获得此 URL 的文件名。String

8、getHost()获得此 URL 的主机名(如果适用)。5.1 获取网络信息项目项目35 获取网络属性信息获取网络属性信息表表5-2 URL类常用方法类常用方法 String getPath()获得此 URL 的路径部分。int getPort()获得此 URL 的端口号。String getProtocol()获得此 URL 的协议名称。String getQuery()获得此 URL 的查询部分。String getUserInfo()获得此 URL 的 userInfo 部分。int hashCode()创建一个适合哈希表索引的整数。URLConnection openConnectio

9、n()返回一个 URLConnection 对象,它表示到 URL 所引用的远程对象的连接。5.1 获取网络信息项目项目35 获取网络属性信息获取网络属性信息InputStream openStream()打开到此 URL 的连接并返回一个用于从该连接读入的 InputStream。protected voidset(String protocol,String host,int port,String file,String ref)设置 URL 的字段。protected voidset(String protocol,String host,int port,String authori

10、ty,String userInfo,String path,String query,String ref)设置 URL 的指定的 8 个字段。String toString()构造此 URL 的字符串表示形式。URI toURI()返回与此 URL 等效的 URI。获取一个URL文本:在不输入参数的情况下显示的结果 在命令行界面运行程序:java GetURL“http:/”:显示 的相关URL 信息 5.1 获取网络信息项目项目35 获取网络属性信息获取网络属性信息【应用拓展应用拓展】获取的基础信息 5.2 基于TCP/IP的服务器与客户机通信 项目36 TCP服务器端程序 技术要点技术

11、要点n创建ServerSocket和Socket类的对象,定义输入、输出流,用于从Socket中获取输入输出流对象;n调用ServerSocket实例对象的accept()方法,启动监听,随时获取客户端的请求;n建立输入/输出流n运用流对象获取从客户端发送的消息,并向客户端发送消息;注意数据的读取与发送可采用不同类型的流对象n关闭客户端流和对应的Socketn转2或关闭ServerSocket5.2 基于TCP/IP的服务器与客户机通信 项目36 TCP服务器端程序n套接字套接字 套接字是通信的基石,是支持TCP/IP协议的通信的基本操作单元可以将套接字看作不同主机间的进程进行双向通信的端点构

12、成了单个主机内及整个网络间的编程界面套接字存在于通信域中,通信域是为了处理一般的线程通过套接字通信而引进的一种抽象概念。套接字通常和同一个域中的套接字交换数据(数据交换也可能穿越域的界限,但这时一定要执行某种解释程序)。各种进程使用这个相同的域互相之间用Internet协议簇来进行通信。n 套接字工作套接字工作要通过互联网进行通信,至少需要一对套接字n运行于客户端ClientSocketn运行于服务器端ServerSocket套接字之间的连接过程可以分为三个步骤:n服务器监听:是服务器端套接字并不定位具体的客户端套接字,而是处于等待连接的状态,实时监控网络状态。n客户端请求:是指由客户端的套接

13、字提出连接请求,要连接的目标是服务器端的套接字。为此,客户端的套接字必须首先描述它要连接的服务器的套接字,指出服务器端套接字的地址和端口号,然后就向服务器端套接字提出连接请求n连接确认:是指当服务器端套接字监听到或者说接收到客户端套接字的连接请求,它就响应客户端套接字的请求,建立一个新的线程,把服务器端套接字的描述发给客户端,一旦客户端确认了此描述,连接就建立好了。而服务器端套接字继续处于监听状态,继续接收其他客户端套接字的连接请求。5.2 基于TCP/IP的服务器与客户机通信 项目36 TCP服务器端程序nServerSocket类实现服务器套接字n服务器套接字等待请求通过网络传入n基于该请

14、求执行某些操作n然后可能向请求者返回结果服务器套接字的实际工作由 SocketImpl 类的实例执行应用程序可以更改创建套接字实现的套接字工厂来配置它自身,从而创建适合本地防火墙的套接字 在客户/服务器通信模式中,服务器端需要创建监听特定端口的ServerSocketnServerSocket负责接收客户连接请求 5.2 基于TCP/IP的服务器与客户机通信 项目36 TCP服务器端程序构造构造ServerSocketnServerSocket()throws IOException nServerSocket(int port)throws IOException nServerSocket

15、(int port,int backlog)throws IOExceptionnServerSocket(int port,int backlog,InetAddress bindAddr)throws IOException port指定服务器要绑定的端口(服务器要监听的端口)backlog指定客户连接请求队列的长度bindAddr指定服务器要绑定的IP地址。(1)绑定端口n绑定端口由参数port指定,如:创建了一个与80端口绑定的服务器 ServerSocket serverSocket=new ServerSocket(80);n如果运行时无法绑定到80端口,以上代码会抛出IOExce

16、ption,更确切地说,是抛出BindException,它是IOException的子类 端口已经被其他服务器进程占用;在某些操作系统中,如果没有以超级用户的身份来运行服务器程序,那么操作系统不允许服务器绑定到11023之间的端口 n如果把参数port设为0,表示由操作系统来为服务器分配一个任意可用的端口由操作系统分配的端口也称为匿名端口对于多数服务器,会使用明确的端口,而不会使用匿名端口n客户程序需要事先知道服务器的端口,才能方便地访问服务器(2)设定客户连接请求队列的长度n当服务器进程运行时,可能会同时监听到多个客户的连接请求。例如,每当一个客户进程执行以下代码:Socket socke

17、t=new Socket(www.javathinker.org,80);在远程www.javathinker.org主机的80端口上,监听到了一个客户的连接请求管理客户连接请求的任务是由操作系统来完成的n操作系统把这些连接请求存储在一个先进先出的队列中许多操作系统限定了队列的最大长度,一般为50n当队列中的连接请求达到了队列的最大容量时,服务器进程所在的主机会拒绝新的连接请求n只有当服务器进程通过ServerSocket的accept()方法从队列中取出连接请求,使队列腾出空位时,队列才能继续加入新的连接请求(2)设定客户连接请求队列的长度n对于客户进程,如果它发出的连接请求被加入到服务器的

18、队列中,就意味着客户与服务器的连接建立成功客户进程从Socket构造方法中正常返回n如果客户进程发出的连接请求被服务器拒绝,Socket构造方法就会抛出ConnectionException nServerSocket构造方法的backlog参数用来显式设置连接请求队列的长度它将覆盖操作系统限定的队列的最大长度 在以下几种情况中,仍然会采用操作系统限定的队列的最大长度:nbacklog参数的值大于操作系统限定的队列的最大长度;nbacklog参数的值大于或等于0;n在ServerSocket构造方法中没有设置backlog参数。(3)设定绑定的IP地址n如果主机只有一个IP地址,那么默认情况下

19、,服务器程序就与该IP地址绑定nServerSocket(int port,int backlog,InetAddress bindAddr)bindAddr显式指定服务器要绑定的IP地址该构造方法适用于具有多个IP地址的主机n假定一个主机有两个网卡,一个网卡用于连接到Internet,IP地址为202.103.96.112,还有一个网卡用于连接到本地局域网,IP地址为192.168.2.4。如果服务器仅仅被本地局域网中的客户访问,那么可以按如下方式创建ServerSocket:ServerSocket serverSocket=new ServerSocket(8000,10,InetAdd

20、ress.getByName (192.168.2.4);(4)默认构造方法的作用n通过不带参数的构造方法创建的ServerSocket不与任何端口绑定,接下来还需要通过bind()方法与特定端口绑定。n这个默认构造方法的用途是,允许服务器在绑定到特定端口之前,先设置ServerSocket的一些选项一旦服务器与特定端口绑定,有些选项就不能再改变了。如:在以下代码中,先把ServerSocket的SO_REUSEADDR选项设为true,然后再把它与8000端口绑定:ServerSocket serverSocket=new ServerSocket();ServerSocket.setReu

21、seAddress(true);/设置ServerSocket的选项ServerSocket.bind(new InetSocketAddress(8000);/与8000端口绑定如果把以上程序代码改为:ServerSocket serverSocket=new ServerSocket(8000);ServerSocket.setReuseAddress(true);/设置ServerSocket的选项ServerSocket.setReuseAddress(true)方法就不起任何作用了,SO_ REUSEADDR选项必须在服务器绑定端口之前设置才有效5.2 基于TCP/IP的服务器与客户

22、机通信 项目36 TCP服务器端程序2接收和关闭与客户的连接nServerSocket的accept()方法从连接请求队列中取出一个客户的连接请求创建与客户连接的Socket对象,并将它返回如果队列中没有连接请求,accept()方法就会一直等待,直到接收到了连接请求才返回。n服务器从Socket对象中获得输入流和输出流,就能与客户交换数据。当服务器正在进行发送数据的操作时,如果客户端断开了连接,那么服务器端会抛出一个IOException的子类SocketException异常:.SocketException:Connection reset by peer这只是服务器与单个客户通信中出现

23、的异常,这种异常应该被捕获,使得服务器能继续与其他客户通信5.2 基于TCP/IP的服务器与客户机通信 项目36 TCP服务器端程序3关闭ServerSocketnServerSocket的close()方法使服务器释放占用的端口,并且断开与所有客户的连接当一个服务器程序运行结束时,即使没有执行ServerSocket的close()方法,操作系统也会释放这个服务器占用的端口服务器程序并不一定要在结束之前执行ServerSocket的close()方法。如果希望及时释放服务器的端口,以便让其他程序能占用该端口,则可以显式调用ServerSocket的close()方法 5.2 基于TCP/IP

24、的服务器与客户机通信 项目36 TCP服务器端程序ServerSocket类常用类常用方法方法主要功能主要功能Socket accept()侦听并接受到此套接字的连接void bind(SocketAddress endpoint)将 ServerSocket 绑定到特定地址(IP 地址和端口号)void bind(SocketAddress endpoint,int backlog)将 ServerSocket 绑定到特定地址(IP 地址和端口号)void close()关闭此套接字InetAddress getInetAddress()返回此服务器套接字的本地地址ServerSocket类

25、常用类常用方法方法int getLocalPort()返回此套接字在其上侦听的端口SocketAddress getLocalSocketAddress()返回此套接字绑定的端点的地址,如果尚未绑定则返回 nullboolean isBound()返回 ServerSocket 的绑定状态boolean isClosed()返回 ServerSocket 的关闭状态String toString()作为 String 返回此套接字的实现地址和实现端口5.2 基于TCP/IP的服务器与客户机通信 项目37 TCP的客户端程序【技术要点技术要点】n创建Socket类的对象,连接到指定服务器的监听端

26、口n定义输入、输出流n从Socket对象中获取输入、输出流对象n运用流对象获取从服务器端返回的消息,并向服务器发送消息 n关闭流和套接字5.2 基于TCP/IP的服务器与客户机通信 项目37 TCP的客户端程序【相关知识相关知识】nSocket类实现客户端套接字(也可以就叫“套接字”)套接字是两台机器之间的通信端点套接字的实际工作由 SocketImpl 类的实例执行应用程序通过更改创建套接字实现的套接字工厂可以配置它自身,以创建适合本地防火墙的套接字 n构造方法public Socket(String host,int port)public Socket(InetAddress addre

27、ss,int port)public Socket(InetAddress address,int port,InetAddress localAddress,int LocalPort)Socket类常用类常用方法方法主要功能主要功能void bind(SocketAddress bindpoint)将套接字绑定到本地地址。void close()关闭此套接字。void connect(SocketAddress endpoint)将此套接字连接到服务器。void connect(SocketAddress endpoint,int timeout)将此套接字连接到具有指定超时值的服务器。I

28、netAddress getInetAddress()返回套接字连接的地址。InputStream getInputStream()返回此套接字的输入流。InetAddress getLocalAddress()获取套接字绑定的本地地址。int getLocalPort()返回此套接字绑定到的本地端口。SocketAddress getLocalSocketAddress()返回此套接字绑定的端点的地址,如果尚未绑定则返回 null。OutputStream getOutputStream()返回此套接字的输出流。int getPort()返回此套接字连接到的远程端口。SocketAddres

29、s getRemoteSocketAddress()返回此套接字连接的端点的地址,如果未连接则返回 null。int getSendBufferSize()获取此 Socket 的 SO_SNDBUF 选项的值,该值是平台在 Socket 上输出时使用的缓冲区大小。int getSoLinger()返回 SO_LINGER 的设置。5.2 基于TCP/IP的服务器与客户机通信 项目37 TCP的客户端程序boolean isBound()返回套接字的绑定状态。boolean isClosed()返回套接字的关闭状态。boolean isConnected()返回套接字的连接状态。boolean

30、 isInputShutdown()返回是否关闭套接字连接的半读状态(read-half)。boolean isOutputShutdown()返回是否关闭套接字连接的半写状态(write-half)。String toString()将此套接字转换为 String。53基于基于UDP的服务器与客户机通信的服务器与客户机通信项目项目38 基于基于UDP的聊天程序的聊天程序【技术要点技术要点】n使用默认构造器,创建使用本机任何可用端口的数据包Socket的实例对象;n创建BufferedReader类对象,用于从键盘获取用户输入的信息;n创建DatagramPacket 类对象,打包要发送的数据

31、,调用DatagramSocket 类的send()和receive()方法获取和发送数据报;n使用UDP进行通信时,服务器与客户端基本相同,运行时,要先启动服务器端,然后启动客户端,服务器端与客户端之间建立连接就可以通信了,结束通过客户端向服务器端发送”bye”消息结束【相关知识相关知识】nDatagramSocket类表示用来发送和接收数据报包的套接字n数据报套接字是包投递服务的发送或接收点n每个在数据报套接字上发送或接收的包都是单独编址和路由的从一台机器发送到另一台机器的多个包可能选择不同的路由,也可能按不同的顺序到达在 DatagramSocket 上总是启用 UDP 广播发送n将 D

32、atagramSocket 绑定到通配符地址。在某些实现中,将 DatagramSocket 绑定到一个更加具体的地址时广播包也可以被接收 n数据报包用来实现无连接包投递服务每条报文仅根据该包中包含的信息从一台机器路由到另一台机器从一台机器发送到另一台机器的多个包可能选择不同的路由,也可能按不同的顺序到达不对包投递做出保证 53基于基于UDP的服务器与客户机通信的服务器与客户机通信项目项目38 基于基于UDP的聊天程序的聊天程序1.UDP协议概论协议概论nUserDatagramProtocol的缩写,即用户数据报协议n用来支持那些需要在计算机之间传输数据的网络应用包括网络视频会议系统在内的众

33、多的客户/服务器模式的网络应用n与TCP(传输控制协议)协议一样,UDP协议直接位于IP(网际协议)协议的顶层。根据OSI(开放系统互连)参考模型,UDP和TCP都属于传输层协议。n主要作用:将网络数据流量压缩成数据报的形式一个典型的数据报就是一个二进制数据的传输单位每一个数据报的前8个字节用来包含报头信息剩余字节则用来包含具体的传输数据 1.UDP协议概论协议概论nUDP报头由4个域组成,其中每个域各占用2个字节,具体如下:源端口号目标端口号数据报长度校验值nUDP协议使用端口号为不同的应用保留其各自的数据传输通道数据发送方(可以是客户端或服务器端)将UDP数据报通过源端口发送出去数据接收方

34、通过目标端口接收数据有的网络应用只能使用预先为其预留或注册的静态端口;而另外一些网络应用则可以使用未被注册的动态端口端口号的有效范围是从0到65535n一般来说,大于49151的端口号都代表动态端口。53基于基于UDP的服务器与客户机通信的服务器与客户机通信项目项目38 基于基于UDP的聊天程序的聊天程序1.UDP协议概论n数据报的长度是指包括报头和数据部分在内的总的字节数报头的长度是固定的该域主要被用来计算可变长度的数据部分(又称为数据负载)数据报的最大长度根据操作环境的不同而各异n从理论上说,包含报头在内的数据报的最大长度为65535字节。n一些实际应用往往会限制数据报的大小,有时会降低到

35、8192字节 53基于基于UDP的服务器与客户机通信的服务器与客户机通信项目项目38 基于基于UDP的聊天程序的聊天程序1.UDP协议概论nUDP协议使用报头中的校验值来保证数据的安全n校验值首先在数据发送方通过特殊的算法计算得出n在传递到接收方之后,还需要再重新计算n如果某个数据报在传输过程中被第三方篡改或者由于线路噪音等原因受到损坏,发送和接收方的校验计算值将不会相符,由此UDP协议可以检测是否出错53基于基于UDP的服务器与客户机通信的服务器与客户机通信项目项目38 基于基于UDP的聊天程序的聊天程序2.UDP与与TCP的对照的对照n如何实现信息的可靠传递方面TCP协议中包含了专门的传递

36、保证机制n当数据接收方收到发送方传来的信息时,会自动向发送方发出确认消息;n发送方只有在接收到该确认消息之后才继续传送其它信息,否则将一直等待直到收到确认信息为止。UDP协议并不提供数据传送的保证机制n如果在从发送方到接收方的传递过程中出现数据报的丢失,协议本身并不能做出任何检测或提示UDP协议称为不可靠的传输协议。n如何接收突发性的多个数据报不同于TCP,UDP并不能确保数据的发送和接收顺序。3.UDP协议的应用协议的应用nUDP具有TCP所望尘莫及的速度优势TCP协议中植入了各种安全保障功能,在实际执行的过程中会占用大量的系统开销,无疑使速度受到严重的影响UDP由于排除了信息可靠传递机制,

37、将安全和排序等功能移交给上层应用来完成,极大降低了执行时间,使速度得到了保证 n与 TCP 不同,UDP 并不提供对 IP 协议的可靠机制、流控制以及错误恢复功能等。由于 UDP 比较简单,UDP 头包含很少的字节,比 TCP 负载消耗少 n由于大多数网络应用程序都在同一台机器上运行,计算机上必须能够确保目的地机器上的软件程序能从源地址机器处获得数据包,以及源计算机能收到正确的回复。这是通过使用 UDP 的“端口号”完成的 nUDP 适用于不需要 TCP 可靠机制的情形当高层协议或应用程序提供错误和流控制功能的时候。UDP 是传输层协议,服务于很多知名应用层协议,包括网络文件系统(NFS)、简

38、单网络管理协议(SNMP)、域名系统(DNS)以及简单文件传输系统(TFTP)53基于基于UDP的服务器与客户机通信的服务器与客户机通信项目项目38 基于基于UDP的聊天程序的聊天程序 协议结构 nSource Port 16位。源端口是可选字段。当使用时,它表示发送程序的端口,同时它还被认为是没有其它信息的情况下需要被寻址的答复端口。如果不使用,设置值为0。nDestination Port 16位。目标端口在特殊因特网目标地址的情况下具有意义。nLength 16位。该用户数据报的八位长度,包括协议头和数据。长度最小值为8。nChecksum 16位。IP 协议头、UDP 协议头和数据位,

39、最后用0填补的信息假协议头总和。如果必要的话,可以由两个八位复合而成。nData 包含上层数据信息 53基于基于UDP的服务器与客户机通信的服务器与客户机通信项目项目38 基于基于UDP的聊天程序的聊天程序DatagramSocket类常用类常用方法方法主要功能主要功能void bind(SocketAddress addr)将此 DatagramSocket 绑定到特定的地址和端口。void close()关闭此数据报套接字。void connect(InetAddress address,int port)将套接字连接到此套接字的远程地址。void connect(SocketAddres

40、s addr)将此套接字连接到远程套接字地址(IP 地址+端口号)。void disconnect()断开套接字的连接。InetAddress getInetAddress()返回此套接字连接的地址。53基于基于UDP的服务器与客户机通信的服务器与客户机通信项目项目38 基于基于UDP的聊天程序的聊天程序InetAddress getLocalAddress()获取套接字绑定的本地地址。int getLocalPort()返回此套接字绑定的本地主机上的端口号。SocketAddress getLocalSocketAddress()返回此套接字绑定的端点的地址,如果尚未绑定则返回 null。i

41、nt getPort()返回此套接字的端口。int getSendBufferSize()获取此 DatagramSocket 的 SO_SNDBUF 选项的值,该值是平台在 DatagramSocket 上输出时使用的缓冲区大小。53基于基于UDP的服务器与客户机通信的服务器与客户机通信项目项目38 基于基于UDP的聊天程序的聊天程序boolean isBound()返回套接字的绑定状态。boolean isClosed()返回是否关闭了套接字。boolean isConnected()返回套接字的连接状态。void receive(DatagramPacket p)从此套接字接收数据报包。

42、void send(DatagramPacket p)从此套接字发送数据报包。53基于基于UDP的服务器与客户机通信的服务器与客户机通信项目项目38 基于基于UDP的聊天程序的聊天程序DatagramPacket类类常用常用方法主要功能方法主要功能InetAddress getAddress()返回某台机器的 IP 地址,此数据报将要发往该机器或者是从该机器接收到的。byte getData()返回数据缓冲区。int getLength()返回将要发送或接收到的数据的长度。int getOffset()返回将要发送或接收到的数据的偏移量。int getPort()返回某台远程主机的端口号,此数

43、据报将要发往该主机或者是从该主机接收到的。SocketAddress getSocketAddress()获取要将此包发送到的或发出此数据报的远程主机的 SocketAddress(通常为 IP 地址+端口号)。void setAddress(InetAddress iaddr)设置要将此数据报发往的那台机器的 IP 地址。void setData(byte buf)为此包设置数据缓冲区。void setLength(int length)为此包设置长度。void setPort(int iport)设置要将此数据报发往的远程主机上的端口号。void setSocketAddress(SocketAddress address)设置要将此数据报发往的远程主机的 SocketAddress(通常为 IP 地址+端口号)。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 办公、行业 > 各类PPT课件(模板)
版权提示 | 免责声明

1,本文(Java程序设计项目教程模块5-网络编程.ppt)为本站会员(三亚风情)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|