首页 | 互联网 | IT动态 | IT培训 | Cisco | Windows | Linux | Java | .Net | Oracle | 软件测试 | C/C++ | 嵌入式开发 | 存储世界 | 服务器
网络设备 | IDC | 安全 | 求职招聘 | 数字网校 | 网页设计 | 平面设计 | 技术专题 | 电子书下载 | 教学视频 | 源码下载 | 搜索 | 博客 | 论坛
中国IT实验室Linux频道
中国IT教育
Google
首页 资讯动态 认证考试 新手入门 核心技术 高级技术 J2EE J2ME Java&XML 开源技术 其他技术 RSS订阅 论坛 专题
您现在的位置: 中国IT实验室 >> Java >> 核心技术 >> 网络编程 >> 正文

在Java编程语言中实现UDP协议编程的方法


    DatagramPacket类用于处理报文,它将Byte数组、目标地址、目标端口等数据包装成报文或者将报文拆卸成Byte数组。应用程序在产生数据包是应该注意,TCP/IP规定数据报文大小最多包含65507个,通常主机接收548个字节,但大多数平台能够支持8192字节大小的报文。DatagramPacket类的构建器共有4个:


    DatagramPacket(byte[] buf, int length, InetAddress addr, int port):从Buf数组中,取出Length长的数据创建数据包对象,目标是Addr地址,Port端口。


    DatagramPacket(byte[] buf, int offset, int length, InetAddress address, int port):从Buf数组中,取出Offset开始的、Length长的数据创建数据包对象,目标是Addr地址,Port端口。


    DatagramPacket(byte[] buf, int offset, int length):将数据包中从Offset开始、Length长的数据装进Buf数组。


    DatagramPacket(byte[] buf, int length):将数据包中Length长的数据装进Buf数组。


    DatagramPacket类最重要的方法就是getData()了,它从实例中取得报文的Byte数组编码。


    简单的实例说明


    {接收数据的服务器}

    byte[] buf = new byte[1000];

    DatagramSocket ds = new DatagramSocket(12345);

    //开始监视12345端口

    DatagramPacket ip = new DatagramPacket(buf, buf.length);

    //创建接收数据报的实例

    while (true)

    {

    ds.receive(ip);

    //阻塞,直到收到数据报后将数据装入IP中

    System.out.println(new String(buf));

    }

    {发送数据的客户端}

    InetAddress target = InetAddress.getByName(“www.xxx.com“);

    //得到目标机器的地址实例

    DatagramSocket ds = new DatagramSocket(9999);

    //从9999端口发送数据报

    String hello = “Hello, I am come in!”;

    //要发送的数据

    byte[] buf = hello.getBytes();

    //将数据转换成Byte类型

    op = new DatagramPacket(buf, buf.length, target, 12345);

    //将BUF缓冲区中的数据打包

    ds.send(op);

    //发送数据

    ds.close();

    //关闭连接

 

上一页  [1] [2] 

【责编:Ken】

中国IT教育

相关产品和培训
文章评论
 友情推荐链接
 认证培训
 专题推荐

 ·关于Java框架技术专题
 ·XML全攻略技术专题
 ·JAVA开源技术介绍专题
 ·Java嵌入式开发之J2ME技术专题
 ·超前体验 Oracle 11g的5个新特性…
 ·揭密使用VB.NET的五个实用技巧
 ·Oracle和SQL Server常用函数对比专题…
 ·展现C#世界 C#程序设计专题…
 ·Java入门 Tomcat的配置技巧精华专题…
 ·Oracle RMAN物理备份技术详解…
 今日更新
 社区讨论
 博客论点
 频道精选
 Java 频道导航