我遇到了关于DatagramSocket的麻烦

时间:2016-05-22 05:48:34

标签: java

error

DatagramSocket ds = new DatagramSocket(12345); //这里,12345是端口

    while (true) {
        byte[] bys = new byte[1024];
        DatagramPacket dp = new DatagramPacket(bys, bys.length);
        ds.receive(dp);

        String ip = dp.getAddress().getHostAddress();
        String s = new String(dp.getData(), 0, dp.getLength());
        System.out.println("from " + ip + " data is : " + s);
    }

为什么?

2 个答案:

答案 0 :(得分:0)

您所获得的UnsatisfiedLinkException表示标准类库中的方法缺少本机代码实现。这是一个"不应该发生"问题

您设法让代码从NetBeans而不是Eclipse运行,这意味着Eclipse启动程序配置中的某些内容会被破坏,而不是您正在使用的JDK。

  • 我建议尝试从命令行运行应用程序。

  • 修复Eclipse问题:

    • 尝试删除并重新创建启动配置
    • 尝试检查所选JRE是否正确,
    • 尝试重新安装Eclipse。

答案 1 :(得分:0)

如果您查看api,那么UnsatisfiedLinkException发生时:

  

如果Java虚拟机无法找到合适的内容,则抛出该异常   声明为native的方法的本地语言定义。

您需要查看使用eclipse运行的JVM。您的代码或eclipse本身应该没有问题。这只是一个JVM问题。它试图找到你的系统的方法实现,它只是找不到它。如果你在Windows上运行它可能是一个DLL相关的问题。也许您需要更新一些驱动程序或JVM,以便它支持您在Windows中的当前实现。