设为首页 加入收藏

TOP

Java基础篇---网络编程(UDP程序设计)
2015-02-04 13:52:58 来源: 作者: 【 】 浏览:44
Tags:Java 基础 --- 网络编程 UDP 程序设计

UDP程序设计


在TCP的索引操作都必须建立可靠地连接,这样一来肯定会浪费大量的系统性能,为了减少这种开销,在网络中又提供了另外一种传输协议---UDP,不可靠的连接,这种协议在各个聊天工具中被广泛的应用。


在UDP开发中使用DatagramPacket包装一条要发送的信息,之后使用DatagramSocket用于完成信息的发送操作。


例如:现在使用聊天工具进行聊天的功能,那么A的发送的信息B不一定可以接受的到,因为使用的是UDP的协议。


UDP中主要是使用数据报协议发送的。


DatagramPacket中的方法



是包含真实的是要发送的信息,称为数据报


所有的数据报使用DatagramPacket进行发送的操作


DatagramSocket



那么如果要想运行程序,则在数据报的开发中,应该首先保证客户端要打开


import java.net.DatagramPacket ;
import java.net.DatagramSocket ;


public class UDPClient{
? ? public static void main(String args[]) throws Exception{? ? // 所有异常抛出
? ? ? ? DatagramSocket ds = null ;? ? ? ? // 定义接收数据报的对象
? ? ? ? byte[] buf = new byte[1024] ;? ? // 开辟空间,以接收数据
? ? ? ? DatagramPacket dp = null ;? ? ? ? // 声明DatagramPacket对象
? ? ? ? ds = new DatagramSocket(9000) ;? ? // 客户端在9000端口上等待服务器发送信息
? ? ? ? dp = new DatagramPacket(buf,1024) ; // 所有的信息使用buf保存
? ? ? ? ds.receive(dp)? ;? ? // 接收数据
? ? ? ? String str = new String(dp.getData(),0,dp.getLength()) + "from " +
? ? ? ? ? ? dp.getAddress().getHostAddress() + ":" + dp.getPort() ;
? ? ? ? System.out.println(str) ;? ? // 输出内容
? ? }
};


要进一步等待服务器发送信息


import java.net.DatagramPacket ;
import java.net.DatagramSocket ;
import java.net.InetAddress ;


public class UDPServer{
? ? public static void main(String args[]) throws Exception{? ? // 所有异常抛出
? ? ? ? DatagramSocket ds = null ;? ? ? ? // 定义发送数据报的对象
? ? ? ? DatagramPacket dp = null ;? ? ? ? // 声明DatagramPacket对象
? ? ? ? ds = new DatagramSocket(3000) ;? ? // 服务端在3000端口上等待服务器发送信息\
? ? ? ? String str = "hello World!!!" ;
? ? ? ? dp = new DatagramPacket(str.getBytes(),str.length(),InetAddress.getByName("localhost"),9000) ; // 所有的信息使用buf保存
? ? ? ? System.out.println("发送信息。") ;
? ? ? ? ds.send(dp);? ? // 发送信息出去
? ? ? ? ds.close() ;
? ? }
};


UDP 属于不可靠的连接协议,服务端发送的信息客户端未必接收的到,采用的是数据报的协议发送。


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇CSS3制作苹果风格键盘 下一篇Java基础篇---网络编程(TCP程序设..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: