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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 刘茂林 高级黑马   /  2013-5-31 16:55  /  1251 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 刘茂林 于 2013-6-1 10:01 编辑

import java.net.*;
import java.io.*;

class UDPTest
{
    public static void main(String[] args) throws Exception
    {
    DatagramSocket sendSocket = new DatagramSocket();
    DatagramSocket receSocket = new DatagramSocket(10001);
   
    new Thread(new Send(sendSocket)).start();
    new Thread(new Rece(receSocket)).start();
   
    }

}

// 这是发送端 使用线程 继承了runnable接口 实现 run方法
class Send implements Runnable
{
    private DatagramSocket ds;

    public Send(DatagramSocket ds)
    {
    this.ds = ds;
    }

    public void run()
    {
    try
    {
        // 下面就是通过键盘读数据然后封装到包中传送出去
        BufferedReader bufr = new BufferedReader(new InputStreamReader(
            System.in));

        String line = null;

        while ((line = bufr.readLine()) != null)
        {
        if ("886".equals(line))
        {
            break;
        }

        byte[] buf = line.getBytes();

        DatagramPacket dp = new DatagramPacket(buf, buf.length,
            InetAddress.getByName("127.0.0.1"), 10001);

        ds.send(dp);

        }

    } catch (Exception e)
    {
        throw new RuntimeException("发送数据出现错误");
    }

    ds.close();
    }

}

// 这是接收端 一样用线程 实现接口 重写run方法
class Rece implements Runnable
{
    private DatagramSocket ds;

    public Rece(DatagramSocket ds)
    {
    this.ds = ds;
    }

    public void run()
    {
    try
    {
        while (true)
        {
        byte[] buf = new byte[1024];
        
        DatagramPacket dp = new DatagramPacket(buf,buf.length);

        ds.receive(dp);
        
        String ip = new String(dp.getAddress().getHostAddress());
        String data = new String(dp.getData(),0,dp.getLength());
        
        System.out.println("ip:"+ip +"说::"+data);
        

        }
    } catch (Exception ex)
    {
        throw new RuntimeException("接收数据时错误");
    }
    }

}
这个程序运行错误 求解释。
Exception in thread "main" java.lang.NoClassDefFoundError: UDPTest (wrong name:
Socket2/UDPTest)

评分

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

查看全部评分

4 个回复

倒序浏览
运行没有错啊,你再试试吧
回复 使用道具 举报
你的没有包名啊。

你的classpath被更改了。类加载器加载不了
回复 使用道具 举报
Exception in thread "main" java.lang.NoClassDefFoundError: UDPTest (wrong name:
Socket2/UDPTest)
  这个的意思是加载不了 主函数 你看看你的那个jar包搞进去没  
  也就是你的classpath必须要配置到你的那个 tool的jar包中  
不过我很奇怪 你怎么这个错了

评分

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

查看全部评分

回复 使用道具 举报
算了。。就这样吧阿
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马