📄 irobexserverthread.java
字号:
/*
* IRObexServer.java
*
* Created on 2006年1月3日, 上午4:12
*
*/
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import javax.microedition.io.Connector;
import javax.obex.HeaderSet;
import javax.obex.Operation;
import javax.obex.ResponseCodes;
import javax.obex.ServerRequestHandler;
import javax.obex.SessionNotifier;
/**
*
* @author Liu Bin
*/
public class IRObexServerThread extends Thread {
private IRObex parent = null;
private SessionNotifier session=null;
private Handler handler= new Handler();
private boolean stopFlag=false;
/** Creates a new instance of IRObexServer */
public IRObexServerThread(IRObex s) {
parent=s;
}
public void run() {
String url = "irdaobex://localhost";
stopFlag=false;
try{
session = (SessionNotifier) Connector.open(url);
parent.debug("接收:打开连接");
while (!stopFlag) {
//开始监听客户端的连接
session.acceptAndOpen(handler);
sleep(100);
}
} catch(Exception e){
parent.debug("监听时发生异常:"+e.toString() );
}
}
//关闭服务器
public void stop() {
parent.debug("关闭服务线程...");
stopFlag=true;
try{
if(session!=null) {
session.close();
session=null;
}
}catch(Exception e){
parent.debug("关闭线程时异常:" + e.toString());
}
}
class Handler extends ServerRequestHandler {
public Handler() {
}
public int onConnect(HeaderSet request, HeaderSet reply) {
parent.debug("服务器:OBEX会话已经建立");
return ResponseCodes.OBEX_HTTP_OK;
}
public void onDisconnect(HeaderSet req, HeaderSet resp) {
parent.debug("服务器:OBEX会话已经断开");
}
public int onPut(Operation op) {
parent.debug("服务器:onPut");
try {
java.io.InputStream is = op.openInputStream();
int size = (int)op.getLength();
parent.debug("接收数据:size=" + size + "; name="
+ op.getReceivedHeaders().getHeader(HeaderSet.NAME) +
"; type=" + op.getType());
if (size>0) {
byte b[] = new byte[size];
is.read(b);
parent.debug("接收数据:" + new String(b));
}
is.close();
} catch (Exception e) {
parent.debug("onPut:" + e.toString());
}
return ResponseCodes.OBEX_HTTP_OK;
}
public int onGet(Operation op) {
parent.debug("服务器:onGet");
return ResponseCodes.OBEX_HTTP_OK;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -