⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 obexclient.java

📁 j2me简单实例,j2me教程加源码,希望大家喜欢
💻 JAVA
字号:
package com.j2medev.chapter9;

import java.io.*;
import javax.microedition.io.Connector;
import javax.microedition.lcdui.*;
import javax.obex.*;

public class OBEXClient implements Runnable,CommandListener{
    
    private OBEXMIDlet midlet = null;
    private ClientSession conn = null;
    private Form form = new Form("client");
    private Account account = null;
    private Command sendCommand = new Command("send",Command.OK,1);
    
    public OBEXClient(OBEXMIDlet _midlet) {
        midlet = _midlet;
        //创建一个Account
        account = new Account("mingjava","helloj2me");
        form.append("username="+account.getUsername()+"\n");
        form.append("password="+account.getPassword()+"\n");
        form.append("want to send this object?click send command");
        form.addCommand(sendCommand);
        form.setCommandListener(this);
        midlet.setCurrent(form);
    }
    
    public void run() {
        try{
            conn = (ClientSession)Connector.open("tcpobex://localhost:5000");
            //连接到服务器
            form.append("connect to obex server...\n");
            HeaderSet resp = conn.connect(null);
            if(resp.getResponseCode() != ResponseCodes.OBEX_HTTP_OK){
                //如果连接失败则返回
                form.append("can not connect to server");
                return;
            }
            //向服务器发送对象,首先创建PUT请求
            HeaderSet header = conn.createHeaderSet();
            header.setHeader(HeaderSet.LENGTH,new Long(account.getLength()));
            Operation op = conn.put(header);
            //发送Account
            DataOutputStream dos = op.openDataOutputStream();
            dos.writeUTF(account.getUsername());
            dos.writeUTF(account.getPassword());
            //退出
            dos.close();
            op.close();
            form.deleteAll();
            form.append("the object has been sent to server");
            form.addCommand(new Command("back",Command.BACK,1));
        }catch(IOException ex){
            ex.printStackTrace();
            return;
        }
        
    }
    
    public void commandAction(Command command, Displayable displayable) {
        if(command == sendCommand){
            form.deleteAll();
            //启动线程,发送对象
            new Thread(this).start();
        }else if(command.getCommandType() == Command.BACK){
            midlet.show();
        }
    } 
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -