qq_27695019
qq_27695019
采纳率0%
2016-05-18 10:25 阅读 12.2k

java代码运行出现错误“Address already in use: Cannot bind”

这是数据接受端代码:
import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.SocketException;

public class ReceiveUDP {

public static void main(String[] args) throws IOException {
    //定义Socket,并开放一个端口,用来接受数据
    int port=10000;
 DatagramSocket  ds = new DatagramSocket(port);
 //定义一个数据缓冲池,用来存放接收到的数据
 byte bytes[] = new byte[1024];
 DatagramPacket dp = new DatagramPacket(bytes,bytes.length);
 //用Receive方法将接收的内容放入数据缓冲池
 ds.receive(dp);
 System.out.println(dp.getPort()+":");
 System.out.println(new String(dp.getData()));
 ds.close();

}

}

这是发送数据端代码:
import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.net.SocketException;
import java.net.UnknownHostException;

public class UDPSend {

public static void main(String[] args) throws IOException {
    DatagramSocket ds = new DatagramSocket(10000,InetAddress.getByName("127.0.0.1"));
    byte  bytes[] = "hello,UDP".getBytes();
    DatagramPacket dp =  new DatagramPacket(bytes,bytes.length);
    //发送数据
    ds.send(dp);
    System.out.println("sent!");
    ds.close();

}

}

运行后出现问题:
Exception in thread "main" java.net.BindException: Address already in use: Cannot bind
at java.net.DualStackPlainDatagramSocketImpl.socketBind(Native Method)
at java.net.DualStackPlainDatagramSocketImpl.bind0(Unknown Source)
at java.net.AbstractPlainDatagramSocketImpl.bind(Unknown Source)
at java.net.DatagramSocket.bind(Unknown Source)
at java.net.DatagramSocket.(Unknown Source)
at java.net.DatagramSocket.(Unknown Source)
at UDPSend.main(UDPSend.java:11)
请各位大神帮忙看看是什么问题,怎么解决?

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

8条回答 默认 最新

  • CSDNXIAOS Robot-S 2016-05-18 10:32

    在启动JBoss 5的过程中老是报错:
    java.net.BindException: Address already in use: Cannot bind
    at java.net.PlainDatagramSocketImpl.bind(Native Method)
    at java.net.DatagramSocket.bind(DatagramSocket.java:340)
    &......
    答案就在这里:java.net.BindException: Address already in use: Cannot bind
    ----------------------Hi,地球人,我是问答机器人小S,上面的内容就是我狂拽酷炫叼炸天的答案,除了赞同,你还有别的选择吗?

    点赞 1 评论 复制链接分享
  • qq1182785541 尘子墨 2016-05-18 10:35

    端口号10000被占用了!建议查看是否重复开启了程序,如果没有,请在任务管理器里找到占用该端口的程序,关闭掉就好了!

    点赞 评论 复制链接分享
  • u012377333 一枪尽骚丶魂 2016-05-18 10:51

    端口被占用了,使用命令netstat -ano | find "端口号"看一下

    点赞 评论 复制链接分享
  • qq_32771571 plusme-0 2016-05-18 10:58

    关掉javaw.exe你启动的小程序自己没关闭

    点赞 1 评论 复制链接分享
  • u013086006 yaya414 2016-05-19 01:27

    端口被占用,换个端口

    点赞 评论 复制链接分享
  • Royal_lr Royal_lr 2016-05-19 01:47

    你启动了多个服务端,,启动一个就好了

    点赞 评论 复制链接分享
  • ljheee ljheee 2016-05-19 08:20

    端口 重复占用,.....................

    点赞 评论 复制链接分享
  • paine123123 paine123123 2017-03-10 03:54

    图片说明

    点赞 评论 复制链接分享

相关推荐