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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 李凤鸣 中级黑马   /  2013-2-9 03:06  /  1916 人查看  /  10 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 李凤鸣 于 2013-2-11 23:03 编辑

UdpDemo.java
  1. import java.net.*;

  2. class UdpSend
  3. {
  4.         public static void main(String[] args) throws Exception
  5.         {
  6.                 //1,创建udp服务。通过DatagramSocket对象。
  7.                 DatagramSocket ds=new DatagramSocket();

  8.                 //2,确定数据,并封装成数据包。DatagramPacket(byte[] buf, int length)
  9.                 byte[] buf="udp ge men lai le".getBytes();
  10.                 DatagramPacket dp=
  11.                         new DatagramPacket(buf,buf.length,InetAddress.getByName("192.168.1.254"),10000);
  12.                
  13.                 //3,通过socket服务,将已有的数据包发送出去。通过send方法。
  14.                 ds.send(dp);

  15.                 //4,关闭资源。
  16.                 ds.close();

  17.         //        System.out.println("Hello World!");
  18.         }
  19. }

  20. class UdpRece
  21. {
  22.         public static void main(String[] args) throws Exception
  23.         {
  24.                 //1,创建udp socket,建立端点。
  25.                 DatagramSocket ds=new DatagramSocket(10000);

  26.                 //2,定义数据包。用于存储数据。
  27.                 byte[] buf=new byte[1024];
  28.                 DatagramPacket dp=new DatagramPacket(buf,buf.length);

  29.                 //通过服务的receive方法将收到数据存入数据包中.
  30.                 ds.receive(dp);

  31.                 //4,通过数据包的方法获取其中的数据。
  32.                 String ip=dp.getAddress().getHostAddress();

  33.                 String data=new String(dp.getData(),0,dp.getLength());

  34.                 int port=dp.getPort();//拿到端口

  35.                 System.out.println(ip+"::"+data+"::"+port);

  36.                 //5,关闭资源
  37.                 ds.close();

  38.         }
  39. }
复制代码
先执行 javac UdpDemo.java
之后执行 java UdpRece
最后执行 java UdpSend

接收不到信息
不知电脑配置的问题还是其他原因,程序看了好几遍,没有查到错误的地方啊

10 个回复

倒序浏览
你不觉得你的IP地址有问题吗!用127.0.0.1试试吧
回复 使用道具 举报
逍林游 发表于 2013-2-9 09:35
你不觉得你的IP地址有问题吗!用127.0.0.1试试吧

把地址换了,还是不行
回复 使用道具 举报
我运行了下没问题啊!
你玩这个程序的具体细节我不是很清楚啊,你自己好好参谋下吧!
(换个端口试试)
回复 使用道具 举报
用你电脑的局域网地址,先启动接收端,再启动发送端
回复 使用道具 举报
本帖最后由 李凤鸣 于 2013-2-9 10:38 编辑
铿锵科技 发表于 2013-2-9 10:04
用你电脑的局域网地址,先启动接收端,再启动发送端

恩,好了,我先获取自己的ip地址,然后把我的地址放进去就好了

我开始认为随便一个地址就能接受到呢
回复 使用道具 举报
逍林游 发表于 2013-2-9 09:56
我运行了下没问题啊!
你玩这个程序的具体细节我不是很清楚啊,你自己好好参谋下吧!
(换个端口试试) ...

就是地址问题,把ip地址换成我自己的就好了
按道理你说的127.0.0.1 也应该没问题
你用的是这个ip地址适的么
回复 使用道具 举报
jonn 高级黑马 2013-2-9 12:28:53
8#
李凤鸣 发表于 2013-2-9 10:40
就是地址问题,把ip地址换成我自己的就好了
按道理你说的127.0.0.1 也应该没问题
你用的是这个ip地址适的 ...

此地址用于测试...
回复 使用道具 举报
赵文 发表于 2013-2-9 12:28
此地址用于测试...

我用  127.0.0.1  不行
用ip地址就可以,不知为什么
回复 使用道具 举报
很好,很强大,今天再测都可以用了,什么都没改{:soso_e127:}
回复 使用道具 举报
我也遇到过,我的是没连接网络的,把IP换成127.0.0.1可用,还有一个可能出现的问题就是你如果用10000端口做过一次了,建议换10001.依次下去。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马