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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© dicegame 中级黑马   /  2013-8-22 17:03  /  1147 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 forward 于 2013-8-24 21:22 编辑
  1. package day23;

  2. import java.io.BufferedReader;
  3. import java.io.InputStreamReader;
  4. import java.net.DatagramPacket;
  5. import java.net.DatagramSocket;
  6. import java.net.InetAddress;

  7. class Send2 {

  8.         public static void main(String[] args) throws Exception {
  9.                 DatagramSocket ds = new DatagramSocket();
  10.                 try {
  11.                         BufferedReader bufr = new BufferedReader(new InputStreamReader(System.in));
  12.                         String line = null;
  13.                         while((line = bufr.readLine()) != null) {
  14.                                 if("over".equals(line))
  15.                                         break;
  16.                                 byte[] buf = line.getBytes();
  17.                                 DatagramPacket dp = new DatagramPacket(buf, buf.length, InetAddress.getByName("192.168.1.103"), 10000);
  18.                                 ds.send(dp);
  19.                         }
  20.                         ds.close();
  21.                 } catch(Exception e) {
  22.                         throw new RuntimeException("发送失败");
  23.                 }
  24.         }

  25. }

  26. class Rec2 {
  27.         
  28.         public static void main(String[] args) throws Exception {
  29.                 DatagramSocket ds = new DatagramSocket(10000);
  30.                 try {
  31.                         while(true) {
  32.                                 byte[] buf = new byte[1024];
  33.                                 DatagramPacket dp = new DatagramPacket(buf, buf.length);
  34.                                 ds.receive(dp);
  35.                                 String ip = dp.getAddress().getHostAddress();
  36.                                 String data = new String(dp.getData(), 0, dp.getLength());
  37.                                 int port = dp.getPort();
  38.                                 System.out.println(ip + "::" + data + "::" + port);
  39.                         }
  40.                 } catch(Exception e) {
  41.                         System.out.println("接收失败");
  42.                 }
  43. //                ds.close();
  44.         }
  45. }
复制代码
java文件名是ChatDemo2
输入javac ChatDeme2.java可以通过编译
紧接着输入java Rec2时就报错
输入java Send2也报错
为什么啊?!

chat.PNG (23.77 KB, 下载次数: 4)

DOS截图

DOS截图

评分

参与人数 1技术分 +1 收起 理由
EYE_SEE_YOU + 1

查看全部评分

6 个回复

倒序浏览
补充一下,编译后生产了那两个类文件,可为什么还报类找不到错误啊!
回复 使用道具 举报
本帖最后由 gudao20080 于 2013-8-22 17:31 编辑

我运行了一下,没有报错,不过没有输出结果。
你最好是把发和送分开写在不同的文件中再运行试试
.你的文件名和类名不一致,运行时会报错的,你应该把文件名改成和类名一致就应该运行通过了
回复 使用道具 举报
是不是你改了classPath?编译的class文件没有在目标文件夹下?
我copy你的代码运行了下 没问题。。
回复 使用道具 举报
耶稣说wō乖 发表于 2013-8-22 17:42
是不是你改了classPath?编译的class文件没有在目标文件夹下?
我copy你的代码运行了下 没问题。。
...

classpath=.;C:\;E:\
ChatDemo2.java文件在C盘根目录下
编译生成的Rec2.class和Send2.class文件也在C盘根目录下
就是运行时报错
我写了个HelloWorld试了下,没问题
到地什么原因呢?
是不是ChatDemo2.java文件中引用了很多类,而我修改了JDK?
可是我用eclipse运行很多也引用了很多类的文件时没问题啊!
崩溃中。。。。

回复 使用道具 举报
gudao20080 发表于 2013-8-22 17:29
我运行了一下,没有报错,不过没有输出结果。
你最好是把发和送分开写在不同的文件中再运行试试
.你的文件 ...

哥们类名没写public
回复 使用道具 举报
没加包名
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马