/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package jdepend.client.ui.circle.util;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.net.SocketException;
import java.net.UnknownHostException;
import java.util.logging.Level;
import java.util.logging.Logger;
import jdepend.client.ui.circle.domain.DataPacket;
import jdepend.client.ui.circle.domain.IpMsgConstant;
import jdepend.client.ui.circle.domain.SocketManage;
import jdepend.client.ui.circle.domain.SystemVar;
/**
*
* 网络工具类
*
* @author Sheldon wang
*/
public class NetUtil {
/**
* 判断端口是否被占用
*
* @return
*/
public static boolean checkPort() {
try {
new DatagramSocket(IpMsgConstant.IPMSG_DEFAULT_PORT).close();
return true;
} catch (SocketException ex) {
return false;
}
}
/**
* 发送UDP数据包
*
* @param dataPacket
* 封装的数据包
* @param targetIp
* 目标IP
*/
public static void sendUdpPacket(DataPacket dataPacket, String targetIp) {
try {
byte[] dataBit = dataPacket.toString().getBytes(SystemVar.DEFAULT_CHARACT);
DatagramPacket sendPacket = new DatagramPacket(dataBit, dataBit.length, InetAddress.getByName(targetIp),
IpMsgConstant.IPMSG_DEFAULT_PORT);
SocketManage.getInstance().getUdpSocket().send(sendPacket);
} catch (SocketException ex) {
Logger.getLogger(NetUtil.class.getName()).log(Level.SEVERE, null, ex);
} catch (UnsupportedEncodingException ex) {
Logger.getLogger(NetUtil.class.getName()).log(Level.SEVERE, null, ex);
} catch (IOException ex) {
Logger.getLogger(NetUtil.class.getName()).log(Level.SEVERE, null, ex);
}
}
/**
* 发送局域网内广播
*
* @param dataPacket
*/
public static void broadcastUdpPacket(DataPacket dataPacket) {
sendUdpPacket(dataPacket, "255.255.255.255");
}
/**
* 获得本机ip
*
* @return 本机ip
*/
public static String getLocalHostIp() {
try {
return InetAddress.getLocalHost().getHostAddress();
} catch (UnknownHostException ex) {
Logger.getLogger(NetUtil.class.getName()).log(Level.SEVERE, null, ex);
return null;
}
}
}