udp server java_udpserver.java

import java.awt.*;import java.net.*;import java.io.*;import java.util.*;/** * Description: * Copyright (C), 2008-2010, Yeeku.H.Lee * This program is protected by copyright laws. * Program Name: * Date: * @author Yeeku.H.Lee kongyeeku@163.com * @version 1.0 */public class UdpServer{public static final int PORT = 30000;//定义每个数据报的最大大小为4Kprivate static final int DATA_LEN = 4096;//定义该服务器使用的DatagramSocketprivate DatagramSocket socket = null;//定义接收网络数据的字节数组byte[] inBuff = new byte[DATA_LEN];//以指定字节数组创建准备接受数据的DatagramPacket对象private DatagramPacket inPacket = new DatagramPacket(inBuff , inBuff.length);//定义一个用于发送的DatagramPacket对象private DatagramPacket outPacket;//定义一个字符串数组,服务器发送该数组的的元素String[] books = new String[]{"轻量级J2EE企业应用实战","基于J2EE的Ajax宝典","Struts2权威指南","ROR敏捷开发最佳实践"};public void init()throws IOException{try{//创建DatagramSocket对象socket = new DatagramSocket(PORT);//采用循环接受数据for (int i = 0; i < 1000 ; i++ ){//读取Socket中的数据,读到的数据放在inPacket所封装的字节数组里。socket.receive(inPacket);//判断inPacket.getData()和inBuff是否是同一个数组System.out.println(inBuff == inPacket.getData());//将接收到的内容转成字符串后输出System.out.println(new String(inBuff ,0 , inPacket.getLength()));//从字符串数组中取出一个元素作为发送的数据byte[] sendData = books[i % 4].getBytes();//以指定字节数组作为发送数据、以刚接受到的DatagramPacket的//源SocketAddress作为目标SocketAddress创建DatagramPacket。outPacket = new DatagramPacket(sendData ,sendData.length , inPacket.getSocketAddress());//发送数据socket.send(outPacket);}}//使用finally块保证关闭资源finally{if (socket != null){socket.close();}}}public static void main(String[] args) throws IOException{new UdpServer().init();}}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值