作者ccpz (OoOoOo)
看板java
标题[问题] DataGramSocket 不会丢 PortUnreachableException
时间Wed Mar 5 15:55:17 2008
我想写程式检查某个 UDP port 有没有开
J2SE 6 的文件说用先呼叫 connect 後就会丢 PortUnreachable
程式片段如下
try{
DatagramSocket udp=new DatagramSocket();
DatagramPacket packet=new DatagramPacket(data,data.length);
udp.setSoTimeout(to);
udp.connect(ip,port);
udp.send(packet);
udp.close();
}catch(Exception e)
{
e.printStackTrace();
}
去连一个没有开启的 port 时,用 wireshark 看的确有 icmp 回来
但是并没有 exception 请问是哪里写错吗?
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.113.242.140
1F:推 PsMonkey:这是 UDP 本身的特性吧? UDP 不会作确认动作阿... 03/05 16:01
2F:推 dreamboxer:没有 exception 不是好事吗?XD 03/05 16:43
3F:→ ccpz:可是api就写先 connect 後就会丢,之前写 c socket 也是 03/05 16:48
4F:→ ccpz:我想从他丢 exception 判断有没有开,他不丢就没办法了 orz 03/05 16:51
5F:推 PsMonkey:ㄜ... 用 TCP 不行吗? 03/05 17:00
6F:→ ccpz:这程式目的是测 UDP port 有没有开,所以TCP 就不能用了orz 03/05 17:55
7F:推 Lordaeron:你不就写过c , 问题就是哪样而已, java 不会比c励害 03/05 23:40