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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 三分之一 于 2015-8-30 15:10 编辑

大神们帮忙看看,程序在运行后没有问题,在Dos命令行下,开启两个窗口,一个是发送端,一个是接收端,接收端一直开启,发送端发送数据,为什么接收端没有任何反应?是我机器的原因吗?
  1. import java.io.BufferedReader;
  2. import java.io.IOException;
  3. import java.io.InputStreamReader;
  4. import java.net.DatagramPacket;
  5. import java.net.DatagramSocket;
  6. import java.net.InetAddress;
  7. import java.net.SocketException;

  8. /**需求:UDP---键盘录入数据方式来进行数据传输(发送端)
  9. * @param args
  10. */
  11. class UdpSend{
  12.         public static void main(String[] args) throws SocketException,IOException {
  13.                 //创建UDP的socket服务
  14.                 DatagramSocket ds=new DatagramSocket();
  15.                 //键盘输入数据
  16.                 BufferedReader bufr=new BufferedReader(new InputStreamReader(System.in));
  17.                 //读取输入的数据
  18.                 String line=null;
  19.                 while((line=bufr.readLine())!=null)
  20.                 {
  21.                         if("886".equals(line))
  22.                                 break;
  23.                         //把数据封装进数据包
  24.                         byte[] buf=line.getBytes();
  25.                         DatagramPacket dp=new DatagramPacket(buf,buf.length,InetAddress.getByName("172.18.245.7"),10005);
  26.                         //发送数据
  27.                         ds.send(dp);
  28.                         //关闭资源
  29.                         ds.close();
  30.                 }
  31.                

  32.         }

  33. }
  34. class UdpReceive{
  35.         public static void main(String[] args) throws SocketException,IOException {
  36.                 //创建socket服务,建立端点连接
  37.                 DatagramSocket ds=new DatagramSocket(10005);
  38.                 while(true)
  39.                 {
  40.                         //定义数据包,存储数据
  41.                         byte[] buf=new byte[1024];
  42.                         DatagramPacket dp=new DatagramPacket(buf,buf.length);
  43.                         //接收数据
  44.                         ds.receive(dp);
  45.                         //获取数据包中的数据
  46.                         String ip=dp.getAddress().getHostAddress();
  47.                         String data=new String(dp.getData(),0,dp.getLength());
  48.                         System.out.println(ip+"...."+data);
  49.                         //关闭资源
  50.                         //ds.close();
  51.                 }

  52.         }


  53. }
复制代码



13 个回复

倒序浏览
debug模式,打断点跟踪一下吧,这么看,我也有点晕啊。
回复 使用道具 举报
zhangcheng0403 发表于 2015-8-23 19:12
debug模式,打断点跟踪一下吧,这么看,我也有点晕啊。

什么是debug模式,打断点跟踪啊?怎么弄啊?表示菜鸟一个,不太懂
回复 使用道具 举报
我也的在dos下运行不了,我是来站岗的。。。
回复 使用道具 举报
你接受到数据以后并没有打印输出语句。
回复 使用道具 举报
蓬头小道士 发表于 2015-8-24 14:32
你接受到数据以后并没有打印输出语句。

有输出语句啊,就是这句:
  1. System.out.println(ip+"...."+data);
复制代码
回复 使用道具 举报
三分之一 发表于 2015-8-24 14:36
有输出语句啊,就是这句:

你看看是不是ip地址错了,在我的电脑上可以运行。
回复 使用道具 举报
看看ip和端口是否正确
回复 使用道具 举报
三分之一 发表于 2015-8-24 14:06
什么是debug模式,打断点跟踪啊?怎么弄啊?表示菜鸟一个,不太懂

你用的是eclipse吗?
回复 使用道具 举报

恩,我用的是MyEclipse8.5
回复 使用道具 举报
三分之一 发表于 2015-8-25 15:27
恩,我用的是MyEclipse8.5

上面工具栏上应该有debug吧,在行号前双击,就能打断点了,然后用debug运行,程序运行到断点就会暂停,你可以把光标停在变量上,就能看到变量的值了。好像是按F6吧还是F5,按一次程序运行一行,根据值跟踪,就知道那里的问题了,非常方便,以后老师应该会教的,
回复 使用道具 举报
zhangcheng0403 发表于 2015-8-25 15:39
上面工具栏上应该有debug吧,在行号前双击,就能打断点了,然后用debug运行,程序运行到断点就会暂停,你 ...

好嘞,我试试~先谢谢你啦!
回复 使用道具 举报
三分之一 发表于 2015-8-25 15:43
好嘞,我试试~先谢谢你啦!

不用客气
回复 使用道具 举报
MoonsenHung 发表于 2015-8-24 14:15
我也的在dos下运行不了,我是来站岗的。。。

你解决了吗?我解决了,但是我是新下载了一个EditPlus就好了,不知道你这样做可不可以。。。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马