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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© taoge 中级黑马   /  2014-1-15 01:17  /  1015 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

这是接收端,没有问题
  1. package com.tg.www;

  2. import java.net.DatagramPacket;
  3. import java.net.DatagramSocket;

  4. public class UdpReceive
  5. {
  6.         public static void main(String[] args) throws Exception
  7.         {

  8.                         //1,创建udp socket,建立端点
  9.                         DatagramSocket dSocket = new DatagramSocket(10003);
  10.                         //2,定义数据包,用于存放数据
  11.                         while (true)
  12.                         {
  13.                                 byte [] buf = new byte[1024];
  14.                                 DatagramPacket dPacket = new DatagramPacket(buf, buf.length);
  15.                                 //3,通过数据包的receive()方法攻取其中的数据
  16.                                 dSocket.receive(dPacket);
  17.                                 //String ip = dPacket.getAddress().getHostAddress();
  18.                                 String data = new String(buf, 0, dPacket.getLength());
  19.                                 //int port = dPacket.getPort();
  20.                                 System.out.println(data);
  21.                         }
  22.                        
  23.                         //关闭资源
  24.                         //dSocket.close();
  25.                                        
  26.         }

  27. }
复制代码
这是发送端,为什么不行啊,怎么都看不出问题在哪

  1. package com.tg.www;

  2. import java.net.DatagramPacket;
  3. import java.net.DatagramSocket;
  4. import java.net.InetAddress;
  5. import java.util.Scanner;

  6. public class UdpSend
  7. {
  8.         public static void main(String[] args) throws Exception
  9.         {
  10.                 // 1,通过 DatagramSocket对象创建Udp服务

  11.                 // 2,获取键盘输入 ,确定数据

  12.                 DatagramSocket dSocket = new DatagramSocket();

  13.                 Scanner scanner = new Scanner(System.in);
  14.                 while (scanner.hasNextLine())
  15.                 {

  16.                         String string = scanner.nextLine();
  17.                         byte[] buf = string.getBytes();
  18.                         // 3,通过DatagramPacket封装成数据包
  19.                         DatagramPacket datagramPacket = new DatagramPacket(buf, buf.length,
  20.                                         InetAddress.getByName("127.0.0.1"), 10003);
  21.                         // 4,通过socket服务的send()方法,将已有的数据包发送出去
  22.                         dSocket.send(datagramPacket);

  23.                 }
  24.                
  25.                 // 5,关闭资源
  26.                 dSocket.close();
  27.         }

  28. }
复制代码



评分

参与人数 1技术分 +1 收起 理由
田磊阳 + 1

查看全部评分

4 个回复

倒序浏览
开两个黑窗口可以正常运行,但是放到MyEclipse里就只能接收一次了,求解
回复 使用道具 举报
taoge 发表于 2014-1-15 02:14
开两个黑窗口可以正常运行,但是放到MyEclipse里就只能接收一次了,求解

照你这么说代码肯定是没问题的,MyEclipse使用方式不对?
兄弟你居然学到这么晚,我撑不住了先睡去。
回复 使用道具 举报
sd110572 发表于 2014-1-15 02:28
照你这么说代码肯定是没问题的,MyEclipse使用方式不对?
兄弟你居然学到这么晚,我撑不住了先睡去。 ...

难道要一个程序分配一个console?办不到啊
回复 使用道具 举报
console是可以切换的,好久没用mye了不知道你的啥样,不过eclipse开两个console是没问题的,mye应该也没问题
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马