直接上代码
发送端:::::
public class SocketAliveServer extends Thread {
private int port;
private String msg = "1";
private DatagramConnection dc;
private int numCount;
public SocketAliveServer(int port) {
this.port =port;
start();
}
public void run() {
try {
dc = (DatagramConnection) Connector.open("datagram://127.0.0.1:" + port);
while(true) {
Thread.sleep(60000);// 线程每隔60秒
try {
msg="SOCKET_PORT_TEST";
Datagram dg = dc.newDatagram(msg.getBytes(), msg.getBytes().length);
dc.send(dg);// 发送测试消息
} catch (Exception e) {
Logger.debug("SocketAliveServer" + port + " send-erro::" + e);
}
}
} catch (Exception e) {
Logger.debug("SocketAliveServer-" + port + "-catch-erro::" + e);
}
}
}
接收端::
public class SocketServer extends Thread {
private DatagramConnection dc;
private int port;
private Object lock = new Object();
private boolean pause;
public SocketServer(int port) {
this.port = port;
start();
}
/**
* UDP
*/
public void run() {
try {
dc = (DatagramConnection) Connector.open("datagram://:" + port);
while (true) {
Datagram dg = dc.newDatagram(100);
dc.receive(dg);
if(pause){
synchronized (lock) {
lock.wait();
}
}
try {
String receive = new String(dg.getData(), 0, dg.getLength());
if (null != receive && receive.length() > 0) {
Logger.debug("port=" + port + " receive=" + receive.trim());
}
} catch (Exception e) {
Logger.debug("UDP-erro::port:"+port + e);
e.printStackTrace();
}
}
} catch (IOException e) {
e.printStackTrace();
Logger.debug("UDP--catch-erro::port:"+port + e);
} catch (Exception e) {
e.printStackTrace();
Logger.debug("UDP--catch-erro::port:"+port + e);
} finally {
try {
if (null != dc) {
dc.close();
Logger.debug("dc.close();---port=" + port );
}
} catch (Exception e) {
e.printStackTrace();
Logger.debug("UDP--final-erro::port:"+port + e);
}
}
}
public void pause(){
this.pause = true;
}
public void startUp(){
this.pause = false;
synchronized(lock){
lock.notifyAll();
}
}
public int getPort(){
return port;
}
}
需要一个cldc_1.1.jar