public class UDPServerThread extends Thread {
DatagramPacket datagrampackets = null;
// int superport=1024;
public UDPServerThread(DatagramPacket packetd) {
this.datagrampackets = packetd;
Log.info("UDPServerThread");
Log.info("datagrampacket" + datagrampackets.getPort());
}
@Override
public void run() {
Log.info("ten");
int ten = datagrampackets.getLength();
Log.info("ten" + ten);
if (ten > 0) {
String msg = new String(datagrampackets.getData(), 0,datagrampackets.getLength());
InetAddress ip = datagrampackets.getAddress();
int ports = datagrampackets.getPort();
Log.info("用戶端" + ip + ports + "發來消息:" + msg);
Document document = null;
try {
document = DocumentHelper.parseText(msg);
} catch (DocumentException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}// 轉換document對象
Element root = document.getRootElement();
//傳回用戶端消息
DatagramSocket sockets=null;
try {
sockets = new DatagramSocket();
byte[] buf = null;
buf = respxml.getBytes();
DatagramPacket packets = new DatagramPacket(buf, buf.length,
new InetSocketAddress(ip, ports));
sockets.send(packets);
sockets.close();
} catch (SocketException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}