当前位置:编程学习 > JAVA >>

socket 异常

import java.net.*;
class UdpSend
{
public static void main(String[] args) throws Exception
{
//建立连接
DatagramSocket ds=new DatagramSocket();
//提供数据
byte[] buf="我来了".getBytes();
DatagramPacket dp=
new DatagramPacket(buf,buf.length,InetAddress.getByName("192.168.0.1"),10000);

//发送数据
ds.send(dp);
//关闭资源
ds.close();
System.out.println(buf);
}
}
//import java.net.*;
class UdpRece
{
public static void main(String[] args) throws Exception
{
//创建端口,监听端口
DatagramSocket ds=new DatagramSocket(10000);
//定义存储数据报
byte[] buf=new byte[1024];
DatagramPacket dp=new DatagramPacket(buf,buf.length);
//存储数据
ds.receive(dp);
//调用存储数据包的方法 分类接收数据
String ip=dp.getAddress().getHostAddress();
String data=new String(dp.getData(),0,dp.getLength());
int port=dp.getPort();
System.out.println("ip="+ip+"::"+data+"port::"+port);
//关闭资源
ds.close();

}
}


异常为:Exception in thread "main" java.net.BindException: Address already in use: Cannot bind
at java.net.PlainDatagramSocketImpl.bind0(Native Method)
at java.net.PlainDatagramSocketImpl.bind(PlainDatagramSocketImpl.java:91)
at java.net.DatagramSocket.bind(DatagramSocket.java:372)
at java.net.DatagramSocket.<init>(DatagramSocket.java:211)
at java.net.DatagramSocket.<init>(DatagramSocket.java:262)
at java.net.DatagramSocket.<init>(DatagramSocket.java:235)
at UdpRece.main(UdpRece.java:7) --------------------编程问答-------------------- 10000端口已被占 --------------------编程问答-------------------- 菜鸟路过,我没有去测试,我赞同上一楼的 --------------------编程问答-------------------- BindException 俗称: 端口绑定异常  你这个10000端口现在已经被占用了 --------------------编程问答--------------------
引用 1 楼 dracularking 的回复:
10000端口已被占
改了端口也没有用  --------------------编程问答-------------------- 我测了你的代码, 正常。 先执行UdpRece,再运行UdpSend。

1, 发报、收报的端口确保一致, 192.168.0.1 我采用的是本地IP: 127.0.0.1 。
2, UdpRece 运行后不会马上退出 ,一直会等待,所以检查下是不是有之前未退出的UdpRece 占用了 端口。 --------------------编程问答--------------------
引用 4 楼 zengnoway 的回复:
引用 1 楼 dracularking 的回复:10000端口已被占改了端口也没有用

如果改了没用,且该端口仍报此错,说明端口仍被占用
扫描端口,验证一下
netstat -an --------------------编程问答-------------------- netstat -nao
补充:Java ,  Java SE
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,