java文件千锋网络编程_第1页
java文件千锋网络编程_第2页
java文件千锋网络编程_第3页
java文件千锋网络编程_第4页
java文件千锋网络编程_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

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

文档简介

1、UDP协议UDP(User Datagram Protocol)用户数据报协议UDP和TCP位于同一层-传输层,但它对于数据包的顺序错误或重发没有TCP来的可靠。因此,UDP不被应用于那些使用虚电路的面向直接服务,UDP主要用于面向查询-应答的服务。UDP是一种面向无连接的通信协议。UDP向应用程序提供了一种发送封装的原始IP数据报的方法,并且发送时无需建立连接,不保证可靠数据的传输。1tcp协议和udp协议的差别 tcp协议和udp协议的差别 TCP UDP 是否连接 面向连接面向非连接 传输可靠性 可靠不可靠 应用场合 传输大量数据 少量数据 速度 慢 快 UDP网络编程面向无连接的数据传

2、输,不可靠的,但效率高音频、视频、UDP一次发送的数据不能超过64KB.UDP编程所需要的类DatagramPacket此类表示(接收或发送的)数据报包。DatagramSocket此类表示用来发送和接收数据报包的套接字 void receive(DatagramPacket p) 从此套接字接收数据报包。 void send(DatagramPacket p) 从此套接字发送数据报包。 3 .InetAddress此类表示互联网协议 (IP) 地址。 static InetAddress getLocalHost()返回本地主机static InetAddress getByName(Str

3、ing host) 在给定主机名的情况下确定主机(可以用ip地址或主机名表示)的 IP 地址String getHostAddress() 返回 IP 地址字符串(以文本表现形式)是一个对象方法.String getHostName()获取此 IP 地址的主机名 接收用到的构造方法DatagramPacket(byte buf, int length) 构造 DatagramPacket,用来接收长度为 length 的数据包。 DatagramPacket(byte buf, int offset, int length) 构造 DatagramPacket,用来接收长度为 length 的

4、包,在缓冲区中指定了偏移量。 发送用到的构造方法DatagramPacket(byte buf, int length, InetAddress address, int port) 构造数据报包,用来将长度为 length 的包发送到指定主机上的指定端口号。 DatagramPacket(byte buf, int offset, int length, InetAddress address, int port) 构造数据报包,用来将长度为 length 偏移量为 offset 的包发送到指定主机上的指定端口号。 buf - 包数据length - 包长度address - 目的地址por

5、t - 目的端口号发送用到的构造方法DatagramPacket(byte buf, int offset, int length, SocketAddress address) 构造数据报包,用来将长度为 length 偏移量为 offset 的包发送到指定主机上的指定端口号。 DatagramPacket(byte buf, int length, SocketAddress address) 构造数据报包,用来将长度为 length 的包发送到指定主机上的指定端口号。SocketAddress 是一个抽象类,它有一个子类InetSocketAddress(String hostname,

6、 int port) 根据主机名和端口号创建套接字地址。 更新数据包DatagramPacket中的数据 void setData(byte buf) 为此包设置数据缓冲区。 void setData(byte buf, int offset, int length) 为此包设置数据缓冲区。void setLength(int length) 为此包设置长度。 UDP收数据示例import java.io.IOException;import .*;/接收端public class UDPReceiver public static void main(String args) byte bu

7、f = new byte1024; DatagramPacket dp = new DatagramPacket(buf, buf.length); DatagramSocket ds = null; try /建立一个收包的socket,监听在5555端口 ds = new DatagramSocket(5555); while(true) /收数据-此方法在接收到数据报前一直阻塞 ds.receive(dp); System.out.println(new String(buf, 0, dp.getLength(); catch (SocketException e) e.printSta

8、ckTrace(); catch (IOException e) e.printStackTrace(); finally if (null != ds) ds.close(); UDPReceiver.java9UDP发数据示例import java.io.IOException;import .*;/发送端public class UDPSender public static void main(String args) String str = nihao吗; DatagramSocket ds = null; DatagramPacket dp = null; try /定义一个发包

9、的Socket,端口使用9999 ds = new DatagramSocket(9999); /要发送的数据包,一定要指定目的地IP和端口号 dp = new DatagramPacket(str.getBytes(), 0,str.getBytes().length, new InetSocketAddress(“127.0.0.1“, 5555); /发送数据 ds.send(dp); catch (SocketException e) e.printStackTrace(); catch (IOException e) e.printStackTrace(); finally if(d

10、s != null) ds.close(); UDPSender.java10Demobyte buf2 = 好啊.getBytes();DatagramPacket dp = new DatagramPacket(buf2,buf2.length, new InetSocketAddress(127.0.0.1,5555);/发送的包数据soc.send(dp);/再发送一个byte buf3 = 再见啦啦啦.getBytes();dp.setData(buf3);dp.setLength(buf3.length);soc.send(dp);练习用UDP实现两个客户端自由聊天UDPClien

11、t1:设定本机端口号5555,远程客户端地址和端口号9999,启动读取线程和写出线程.UDPClient2:设定本机端口号9999,远程客户端地址和端口号5555,启动读取线程和写出线程.UDPReceiveThread:循环读取对方写出的信息;UDPSendThread:循环接收本客户端的键盘输入,向对方写出;URLURL代表一个统一资源定位符,它是指向互联网“资源”的指针。构造方法: public URL(Stringspec) throws MalformedURLException根据指定的字符串URL地址创建 URL 对象常用方法:public URLConnection openC

12、onnection() throws IOException返回一个 URLConnection 对象,它表示到 URL 所引用的远程对象的连接public final InputStream openStream() throws IOException打开到此 URL 的连接并返回一个用于从该连接读入的 InputStream13URL示例import java.io.*;import .URL;public class TestURL public static void main(String args) String strUrl = ; BufferedReader br = nu

13、ll; try URL url = new URL(strUrl); URLConnection uc = url.openConnection(); /uc.connect(); /getInputStream会隐含的进行connect br = new BufferedReader(new InputStreamReader(uc.getInputStream(),UTF-8); String str = ; while(str = br.readLine() != null) System.out.println(str); catch (MalformedURLException e) e

温馨提示

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

评论

0/150

提交评论