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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 梦想蓝色天空 高级黑马   /  2013-6-17 23:46  /  898 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文


  1. <P>UDP发送端</P>
  2. <P>  public static void sendUDPInfo() throws Exception {</P>
  3. <P>  DatagramSocket ds = new DatagramSocket(10005);</P>
  4. <P>  BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
  5.   String len = null;
  6.   while ((len = br.readLine()) != null) {</P>
  7. <P>     DatagramPacket dp = new DatagramPacket(len.getBytes(), len.getBytes().length, InetAddress.getByName("192.168.1.117"), 10007);
  8.    ds.send(dp);</P>
  9. <P>  }</P>
  10. <P>  ds.close();</P>
  11. <P> }</P>
  12. <P> </P>
  13. <P> </P>
  14. <P> </P>
  15. <P>UDP接收端</P>
  16. <P>public static void receUDPInfo() throws Exception {

  17.   DatagramSocket ds = new DatagramSocket(10007);</P>
  18. <P>  while (true) {</P>
  19. <P>   byte[] buf = new byte[1024];
  20.    DatagramPacket dp = new DatagramPacket(buf, buf.length);
  21.    ds.receive(dp);</P>
  22. <P>   System.out.println("ip=" + dp.getAddress().getHostAddress()+ "   Data=" + new String(dp.getData(), 0, dp.getLength()));
  23.   }
  24. }</P>
  25. <P> </P>
复制代码
问题:我目前在做一个udp键盘录入并发送到UDP接收端,将信息打印出来的一个Demo。在使用键盘输入一次的话。UDP接收端可以正常接收到并打印发送过来的数据。。但在第二次输入的时候,接收端无法接收到数据
小弟猜想,有可能是第二次键盘录入后 UDP发送端根本没有发送,所以导致接收端接收不到数据。但检查了几遍代码,感觉没有什么问题。寻求大家帮助,万分感谢!

评分

参与人数 1技术分 +1 收起 理由
孙百鑫 + 1

查看全部评分

4 个回复

倒序浏览
你可以在发送语句和接收语句前后加些打印,
回复 使用道具 举报

  1. <P>UDP发送端</P>

  2. <P>  public static void sendUDPInfo() throws Exception {</P>

  3. <P>  DatagramSocket ds = new DatagramSocket(10005);</P>  //这里的端口不能给出。 这里只创建UDP发送端Socket服务就可以。在发送的时候再指定端口。

  4. <P>  BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

  5.   String len = null;

  6.   while ((len = br.readLine()) != null) {</P>//这里还有问题哦  键盘录入的话,一定要指定程序的出口。 加上一个if判断就好!

  7. <P>     DatagramPacket dp = new DatagramPacket(len.getBytes(), len.getBytes().length, InetAddress.getByName("192.168.1.117"), 10007);

  8.    ds.send(dp);</P>

  9. <P>  }</P>

  10. <P>  ds.close();</P>

  11. <P> }</P>

  12. <P> </P>

  13. <P> </P>

  14. <P> </P>

  15. <P>UDP接收端</P>

  16. <P>public static void receUDPInfo() throws Exception {


  17.   DatagramSocket ds = new DatagramSocket(10007);</P>

  18. <P>  while (true) {</P>

  19. <P>   byte[] buf = new byte[1024];

  20.    DatagramPacket dp = new DatagramPacket(buf, buf.length);

  21.    ds.receive(dp);</P>

  22. <P>   System.out.println("ip=" + dp.getAddress().getHostAddress()+ "   Data=" + new String(dp.getData(), 0, dp.getLength()));

  23.   }

  24. }</P>

  25. <P> </P>
复制代码
回复 使用道具 举报
看完各位发言后,自己又搞了一下,可能环境的问题,我是在myEclipse中运行的,可能环境的问题吧,,,总之还是谢谢大家
回复 使用道具 举报
楼主您好~帖子长时间未作出回答,我已经将您的帖子改成已解决。如果有问题的话可以私密我哦~
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马