A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© "O_忆_O 中级黑马   /  2013-7-21 00:11  /  994 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 杨兴庭 于 2013-7-22 21:28 编辑

一直不明白,接收端是通过哪句代码获取到客户端发过来的数据包的啊?
还是说只要指定端口,然后只要有数据包进来就会自动获取啊?

评分

参与人数 1技术分 +1 收起 理由
杜光 + 1 每天提问并回答问题,是对知识的复习和积累.

查看全部评分

3 个回复

倒序浏览
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技术分 +1 收起 理由
杜光 + 1 每天提问并回答问题,是对知识的复习和积累.

查看全部评分

回复 使用道具 举报
张强1 发表于 2013-7-21 01:15
byte[] buf = new byte[1000];

  DatagramSocket ds = new DatagramSocket(12345);

就是说监视端口,一有数据进来就接收吗
回复 使用道具 举报
ds.receive();//从此套接字接收数据报包
ds.send();//从此套接字发送数据报包

评分

参与人数 1黑马币 +3 收起 理由
杨兴庭 + 3 赞一个!

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马