📄 obexserver.java
字号:
package com.j2medev.chapter9;
import java.io.DataInputStream;
import java.io.IOException;
import javax.microedition.io.Connection;
import javax.microedition.io.Connector;
import javax.microedition.lcdui.*;
import javax.obex.*;
public class OBEXServer extends ServerRequestHandler implements Runnable,CommandListener{
private OBEXMIDlet midlet = null;
private SessionNotifier server = null;
private Form form = null;
private Command cancelCommand = new Command("cancel",Command.BACK,1);
private boolean closed = false;
public OBEXServer(OBEXMIDlet _midlet) {
midlet = _midlet;
form = new Form("server");
form.addCommand(cancelCommand);
form.setCommandListener(this);
midlet.setCurrent(form);
}
public void run() {
//启动服务器,监听端口5000
try {
server = (SessionNotifier)Connector.open("tcpobex://:5000");
} catch (IOException ex) {
ex.printStackTrace();
return;
}
form.append("server has been started,waiting for client session....");
while(!closed){
try {
//等待客户端连接
Connection conn = server.acceptAndOpen(this);
} catch (IOException ex) {
ex.printStackTrace();
}
}
}
public void commandAction(Command command, Displayable displayable) {
if(command == cancelCommand){
//关闭服务器,并返回。
closed = true;
try {
server.close();
server = null;
} catch (IOException ex) {
ex.printStackTrace();
}
midlet.show();
}
}
//响应客户端的PUT操作
public int onPut(Operation op){
try {
HeaderSet header = op.getReceivedHeaders();
System.out.println(header.getHeader(HeaderSet.LENGTH).toString());
//接收Account对象,并显示在Form上
DataInputStream dis = op.openDataInputStream();
String user = dis.readUTF();
form.append("username="+user+"\n");
String pass = dis.readUTF();
form.append("password="+pass+"\n");
//关闭
dis.close();
op.close();
} catch (IOException ex) {
ex.printStackTrace();
//出错
return ResponseCodes.OBEX_HTTP_INTERNAL_ERROR;
}
return ResponseCodes.OBEX_HTTP_OK;
}
//连接成功
public int onConnect(HeaderSet request, HeaderSet reply) {
return ResponseCodes.OBEX_HTTP_OK;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -