|
import org.vertx.java.core.AsyncResult;
import org.vertx.java.core.AsyncResultHandler;
import org.vertx.java.core.Handler;
import org.vertx.java.core.buffer.Buffer;
import org.vertx.java.core.datagram.DatagramPacket;
import org.vertx.java.core.datagram.DatagramSocket;
import org.vertx.java.core.datagram.InternetProtocolFamily;
import org.vertx.java.core.logging.Logger;
import org.vertx.java.platform.Verticle;
public> Logger logger;
private static final int TS_SIZE = 8;
private static final int CMD_SIZE = 1;
private static final int UID_SIZE = 4;
private static final int TS_IDX = 0;
private static final int CMD_IDX = TS_SIZE;
private static final int UID_IDX = TS_SIZE + CMD_SIZE;
private static final int CID_IDX = TS_SIZE + CMD_SIZE + UID_SIZE;
public void start() {
logger = container.logger();
final DatagramSocket socket = vertx
.createDatagramSocket(InternetProtocolFamily.IPv4);
socket.listen("0.0.0.0", 8888,
new AsyncResultHandler() {
public void handle(AsyncResult asyncResult) {
if (asyncResult.succeeded()) {
socket.dataHandler(new Handler() {
public void handle(DatagramPacket packet) {
Buffer buf = packet.data();//bu
logger.info(buf.length());
int ts = buf.getInt(TS_IDX);
byte cmd = buf.getByte(CMD_IDX);
int uid = buf.getInt(UID_IDX); // 客服端已经替换为网络字节序
int cid = buf.getInt(CID_IDX);
logger.info("ts:" + ts + ",cmd:" + cmd
+ ",uid:" + uid + ",cid:" + cid);
}
});
} else {
logger.warn("Listen failed", asyncResult.cause());
}
}
});
}
}
|
|
|