1 / 23
文档名称:

050 网络编程.ppt

格式:ppt   页数:23页
下载后只包含 1 个 PPT 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

050 网络编程.ppt

上传人:wc69885 2015/10/4 文件大小:0 KB

下载得到文件列表

050 网络编程.ppt

相关文档

文档介绍

文档介绍:深入Java编程
专业教程
理论讲解部分

概述:
介绍Datagram网络编程
给出一个例子简单实现Datagram网络编程
重点:
难点:
Datagram编程的实现
Datagram编程的实现
第050课网络编程
3 Datagram
第050课网络编程
所谓数据报(Datagram)就跟日常生活中的邮件系统一样,是不能保证可靠的寄到的,而面向链接的TCP就好比电话,双方能肯定对方接受到了信息。
TCP,可靠,传输大小无限制,但是需要连接建立时间,差错控制开销大。
UDP,不可靠,差错控制开销较小,传输大小限制在64K以下,不需要建立连接。
TCP UDP的比较
第050课网络编程
中提供了两个类DatagramSocket和DatagramPacket用来支持数据报通信.
DatagramSocket用于在程序之间建立传送数据报的通信连接.
DatagramPacket则用来表示一个数据报。
3 Datagram
第050课网络编程
先来看一下DatagramSocket的构造方法:
port指明socket所使用的端口号,如果未指明端口号,则把socket连接到本地主机上一个可用的端口。
DatagramSocket();
DatagramSocket(int prot);
DatagramSocket(int port, InetAddress laddr) ;
上述的两个构造方法都声明抛弃非运行时例外 SocketException, 程序中必须进行处理,或者捕获、或者声明抛弃。
laddr指明一个可用的本地地址。给出端口号时要保证不发生端口冲突,否则会生成SocketException类例外。
3 Datagram
第050课网络编程
用数据报方式编写client/server程序时,无论在客户方还是服务方都遵循:
首先都要建立一个DatagramSocket对象,用来接收或发送数据报,
然后使用DatagramPacket类对象作为传输数据的载体。
3 Datagram
第050课网络编程
下面看一下DatagramPacket的构造方法:
DatagramPacket(byte buf[],int length);
DatagramPacket(byte buf[], int length, InetAddress addr, int port);
DatagramPacket(byte[] buf, int offset, int length);
DatagramPacket(
byte[] buf,int offset,int length,InetAddress address,int port);
其中,buf中存放数据报数据,length为数据报中数据的长度,addr和port指明目的地址,offset指明了数据报的位移量。
3 Datagram
在接收数据前,应该采用上面的一种方法生成一个DatagramPacket对象,给出接收数据的缓冲区及其长度。
第050课网络编程
DatagramPacket packet=new DatagramPacket(buf, 256); (packet);
然后调用DatagramSocket 的方法receive()等待数据报的到来,receive()将一直等待,直到收到一个数据报为止。
3 Datagram
第050课网络编程
发送数据前,也要先生成一个新的DatagramPacket对象,这时要使用上面的第二种构造方法.
DatagramPacket packet=new DatagramPacket(
buf, length, address, port); (packet);
在给出存放发送数据的缓冲区的同时,还要给出完整的目的地址,包括IP地址和端口号。
发送数据是通过DatagramSocket的方法send()实现的,send()根据数据报的目的地址来寻径,以传递数据报。
3 Datagram
第050课网络编程
在构造数据报时,Address类参数。中定义,地址,我们可以通过它提供的类方法getByName()从一个表示主机名的字符串获取该主机的IP地址,然后再获取相应的地址信息。

有了上面的知识,我们就可以来构件一个基于UDP的C/S 网络传输模型,客户端
import .*; import .*; import .*;
3 Datagram