Package com.chy.socket;
Import java.io.IOException;
Import Java.net.DatagramPacket;
Import Java.net.DatagramSocket;
Import java.net.SocketException;
Import Com.chy.global.GlobalValue;
public class UdpClient {private Boolean isstop = false;
Private Datagramsocket datagramsocket = null;
Private Onreceivelistener onreceivelistener = null;
Private Readthread readthread = null;
Public interface Onreceivelistener {public void OnReceive (Datagrampacket packet); Class Readthread extends Thread {@Override public void run () {byte[] buffer = new Byte[globalvalue.read_bloc
K_size];
Datagrampacket packet = new Datagrampacket (buffer, buffer.length);
while (!isstop &&!isinterrupted ()) {try {datagramsocket.receive (packet);
if (Onreceivelistener!= null) {onreceivelistener.onreceive (packet);
} catch (IOException ex) {ex.printstacktrace (); "}}} public udpclient (int port, Onreceivelistener onreceivelisteneR) {try {datagramsocket = new Datagramsocket (port);
catch (SocketException ex) {ex.printstacktrace ();
} if (datagramsocket = = null) {return;
} This.onreceivelistener = Onreceivelistener;
Readthread = new Readthread ();
Readthread.start ();
Public synchronized Boolean send (byte[] buffer {Boolean result = false;
if (datagramsocket!= null) {Datagrampacket packet = new Datagrampacket (buffer, buffer.length);
try {datagramsocket.send (packet);
result = true;
catch (IOException ex) {ex.printstacktrace ();
} return result;
public void Close () {isstop = true;
if (readthread!= null &&!readthread.isinterrupted ()) {readthread.interrupt ();
Readthread = null;
} if (Datagramsocket!= null) {datagramsocket.close ();
}
}
}