黑马程序员技术交流社区

标题: 关于UDP的接收端 [打印本页]

作者: "O_忆_O    时间: 2013-7-21 00:11
标题: 关于UDP的接收端
本帖最后由 杨兴庭 于 2013-7-22 21:28 编辑

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

作者: 张强1    时间: 2013-7-21 01:15
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();

  //关闭连接
希望对你有帮助
作者: "O_忆_O    时间: 2013-7-21 14:24
张强1 发表于 2013-7-21 01:15
byte[] buf = new byte[1000];

  DatagramSocket ds = new DatagramSocket(12345);

就是说监视端口,一有数据进来就接收吗
作者: 冒烟的芒果    时间: 2013-7-21 20:17
ds.receive();//从此套接字接收数据报包
ds.send();//从此套接字发送数据报包




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2