22java中使用UDP TCP 协议做聊天工具

来源:互联网 发布:小微企业数据 编辑:程序博客网 时间:2024/05/14 10:09

1、UDP简介
   a、UDP( User Datagram Protocol )协议是用户数据报,在网络中它与TCP协议一样用于处理数据包。在OSI模型中,在第四层——传输层,处于IP协议的上一层。
   UDP是一种无连接的协议,每个数据报都是一个独立的信息,包括完整的源或目的地址,它在网络上以任何可能的路径传往目的地,因此能否到达目的地,到达目的地的时间以及内容的正确性都是不能被保证的。 
   b、为什么要使用UDP?
   在网络质量令人不十分满意的环境下,UDP协议数据包丢失会比较严重。但是由于UDP的特性:它不属于连接型协议,因而具有资源消耗小,处理速度快的优点,
   所以通常音频、视频和普通数据在传送时使用UDP较多,因为它们即使偶尔丢失一两个数据包,也不会对接收结果产生太大影响。比如聊天用的ICQ和OICQ就是使用的UDP协议。
  2、UDP编程
   a、DatagramSocket
   b、DatagramPacket

   UDP客户端:也是主要执行三个步骤。

   1.创建DatagramSocket实例;

   2.使用DatagramSocket类的send()和receive()方法发送和接收DatagramPacket实例;

   3.最后使用DatagramSocket类的close()方法销毁该套接字。

   1.向服务器发送信息;

   2.在receive()方法上最多阻塞等待3秒钟,在超时前若没有收到响应,则重发请求(最多重发5次);

   3.关闭客户端。

   UDP服务器端:典型的UDP服务器要执行三个步骤,

   1.创建一个指定了本地端口的DatagramSocket实例;

   2.使用DatagramSocket的receive()方法接收一个来自客户端的DatagramPacket实例,
   而这个DatagramPacket实例在客户端创建时就包含了客户端的地址,这样我们就知道回复信息要发送到哪里了;

   3.使用DatagramSocket类的send()和receive()方法来发送和接收DatagramPacket实例。

0 0