Java网络编程技术-03.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

第3章UDP协议网络编程;UDP协议是无连接的协议,它以数据报作为数据传输的载体。数据报是一个在网络上发送的独立信息,它的到达、到达时间以及内容本身等都不能得到保证。数据报的大小是受限制的,每个数据报的大小限定在64KB以内。

UDP协议无需在发送方和接收方建立连接,但也可以先建立连接。数据报在网上可以以任何可能的路径传往目的地。

在Java中,基于UDP协议实现网络通信的类有三个:

用于表达通信数据的数据报类DatagramPacket

用于进行端到端通信的类DatagramSocket

用于组播通信的类MulticastSocket。;类DatagramPacket

构造方法

publicDatagramPacket(byte[]?buf,int?length)

publicDatagramPacket(byte[]?buf,int?offset,int?length):这两个方法用于接收数据

publicDatagramPacket(byte[]?buf,int?length,InetAddressaddress,int?port)

publicDatagramPacket(byte[]?buf,int?offset,int?length,InetAddress?address,int?port):这两个方法用于发送数据

获取数据——获取接收报中的信息

publicInetAddressgetAddress()

publicbyte[]getData()

publicintgetLength()

publicintgetOffset()

publicintgetPort()

设置数据——设置发送报中的信息

setAddress(InetAddress?iaddr)、setPort(int?iport)、setData(byte[]?buf)、setData(byte[]?buf,int?offset,int?length)、setLength(int?length);类DatagramSocket

构造方法

publicDatagramSocket()

publicDatagramSocket(int?port):在指定的端口通信

publicDatagramSocket(int?port,InetAddress?laddr):在指定的地点运行

这三个方法都将抛出例外SocketException,程序中需要捕获处理。

最主要的方法——发送与接收数据报

publicvoidreceive(DatagramPacket?p)

publicvoidsend(DatagramPacket?p)

这两个方法都将抛出例外IOException,程序中需要捕获处理。

其他方法

publicvoidconnect(InetAddress?address,int?port):与指定的机器通信

publicvoiddisconnect():关闭与指定机器的连接

publicvoidclose():关闭Socket;;SingleUDPClient.java;发送端发出数据报的标准步骤:

1.定义数据成员

DatagramSocketsocket;

DatagramPacketpacket;

InetAddressaddress;(用来存放接收方的地址)

intport;(用来存放接收方的端口号)

2.创立数据报Socket对象

try{

socket=newDatagramSocket(4445);

}e){}

socket绑定到一个本地的可用端口,等待接收客户的请求。;3.分配并填写数据缓冲区(一个字节类型的数组)

byte[]buf=newbyte[256];

存放从客户端接收的请求信息。

4.创立一个DatagramPacket

packet=newDatagramPacket(buf,256);

用来从socket接收数据,它只需要两个参数。

5.效劳器阻塞

socket.receive(packet);

在客户的请求数据报到来之前一直等待。;6.从到来的包中得到地址和端口号

InetAddressaddress=packet.getAddress();

intport=packet.getPort();

7.将数据送入缓冲区

或来自文件、或键盘输

文档评论(0)

liuzhouzhong + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档