03-20 21:35:54.234: WARN/System.err(1772): java.net.BindException: The socket level is invalid
03-20 21:35:54.264: WARN/System.err(1772): at org.apache.harmony.luni.platform.OSNetworkSystem.socketBindImpl(Native Method)
03-20 21:35:54.294: WARN/System.err(1772): at org.apache.harmony.luni.platform.OSNetworkSystem.bind(OSNetworkSystem.java:107)
03-20 21:35:54.324: WARN/System.err(1772): at org.apache.harmony.luni.net.PlainDatagramSocketImpl.bind(PlainDatagramSocketImpl.java:120)我是在
DatagramSocket ds1 = new DatagramSocket();
int rtpport2=0
//判断port可用否
for(rtpport2 = 3469;rtpport2<=65535;rtpport2++){
try {
Socket s= new Socket("127.0.0.1",rtpport2);
s.close();
break;
} catch (IOException e) {
// TODO Auto-generated catch block
rtpport2++;
continue;
}
ds1.bind(new InetSocketAddress(rtpport2));
03-20 21:35:54.264: WARN/System.err(1772): at org.apache.harmony.luni.platform.OSNetworkSystem.socketBindImpl(Native Method)
03-20 21:35:54.294: WARN/System.err(1772): at org.apache.harmony.luni.platform.OSNetworkSystem.bind(OSNetworkSystem.java:107)
03-20 21:35:54.324: WARN/System.err(1772): at org.apache.harmony.luni.net.PlainDatagramSocketImpl.bind(PlainDatagramSocketImpl.java:120)我是在
DatagramSocket ds1 = new DatagramSocket();
int rtpport2=0
//判断port可用否
for(rtpport2 = 3469;rtpport2<=65535;rtpport2++){
try {
Socket s= new Socket("127.0.0.1",rtpport2);
s.close();
break;
} catch (IOException e) {
// TODO Auto-generated catch block
rtpport2++;
continue;
}
ds1.bind(new InetSocketAddress(rtpport2));
而且,DatagramSocket ds1 = new DatagramSocket();构造的时候就已经绑定了一个系统给定的端口,不能重新绑定了!
要测试是否可用:DatagramSocket ds1 = new DatagramSocket(rtpport2);
如果没有抛出异常就表示可用,有异常再针对性处理下就OK了!!!
DatagramSocket ds1 = new DatagramSocket();
这条语句已经搞定了!