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

📄 screenserver.java

📁 使用J2ME MIDP2.0實做AODV協定(RFC3561),測試平台為兩種PDA:PalmOS和PacketPC2003
💻 JAVA
字号:
/* * @(#)ScreenServer.java	1.7 03/03/02 * * Copyright (c) 2000-2003 Sun Microsystems, Inc. All rights reserved.  * PROPRIETARY/CONFIDENTIAL * Use is subject to license terms */package qosaodv.gui;import qosaodv.itface.*;import qosaodv.net.*;import qosaodv.other.*;import javax.microedition.midlet.*;import javax.microedition.io.*;import javax.microedition.lcdui.*;import java.io.*;public class ScreenServer implements ScreenInterface, Runnable, CommandListener {	private UDPDatagramConnection dgc= null;    	private boolean runFlag= false;    private Display display;	GuiManager guiMgr;	private TextBox tbox;	private Thread tReceive;	private String port;    private Form frmMain,frmSetup;    private StringItem sstatus;    private TextField tsend, tdest, tport;    private Command cmdPort = new Command("Set port", Command.SCREEN, 1);    private Command cmdSend = new Command("Send", Command.SCREEN, 1);    private Command cmdClean = new Command("Clean", Command.SCREEN, 1);    private Command cmdBack = new Command("Back", Command.EXIT, 1);	private Form frmCur;    private AodvSender sender;    public ScreenServer(GuiManager guiMgr2, Display display2) {		port= new String();        guiMgr=  guiMgr2;        display= display2;		tport= new TextField("Port:" , "5556", 5, TextField.ANY);        frmSetup = new Form("AODV Datagram Server");        frmSetup.append(tport);        frmSetup.addCommand(cmdPort);        frmSetup.setCommandListener(this);        sstatus = new StringItem("Status:" , "");			tdest= new TextField("Dest:" , ""+port, 50, TextField.ANY);        tsend = new TextField("Send:", "AODV Datagram Server", 300, TextField.ANY);        frmMain = new Form("AODV Datagram Server");	        frmMain.append(sstatus);		frmMain.append(tdest);        frmMain.append(tsend);        frmMain.addCommand(cmdSend);//        frmMain.addCommand(cmdClean);        frmMain.addCommand(cmdBack);        frmMain.setCommandListener(this);		frmCur= frmSetup;//        display.setCurrent(frmCur);    }	public void setUpdate(boolean update2) {	}	public void show()    {        display.setCurrent(frmCur);	    }	private void show(Form frmCur2)	{		frmCur= frmCur2;        display.setCurrent(frmCur);			}    public void start() {		runFlag= true;        tReceive = new Thread(this);        tReceive.start();    }             public void terminate() { 		runFlag = false;//        sstatus.setText("Terminated");		frmCur= frmSetup;        if(sender!=null)            sender.terminate();		try	{			dgc.close();		}		catch (Exception e)	{}			}         public void run() {        try{            dgc = (UDPDatagramConnection)Connector.open("datagram://:"+port);            sstatus.setText("Listening port " + port);		    DateString.printAfterTime("[AODV Datagram Server] Listening port "+port);        }catch(Exception e)  {            DateString.printAfterTime(e.toString());            String msg;            if( e instanceof IOException )             {                msg=  "Port " + port + " was already taken.";            }            else if( e instanceof SecurityException )             {                msg=  "Datagram can't be use, check truth domain"
;            }            else            {                msg= "Unknow error - " + e.getMessage();            }            DateString.printAfterTime(msg);            Alert a = new Alert("AODV Datagram Server", msg, null, AlertType.ERROR);            a.setTimeout(Alert.FOREVER);            a.setCommandListener(this);            display.setCurrent(a);            return;        }        try {            sender = new AodvSender(dgc, guiMgr);            while (runFlag) {                Datagram dg = dgc.newDatagram( QDatagramControlor.getMaximumLength(dgc) );//                dgc.receive(dg);				QDatagramControlor.receive(dgc,dg);	//AODV 盡ノ receive//	                // Have we actually received something or is this just a timeout ?                if (dg.getLength() > 0) {				    String recStr= Converter.BytesToUtf( dg.getData(), dg.getOffset(), dg.getLength() );					DateString.printAfterTime("[AODV Datagram Server] Receive from " + dg.getAddress() + " - \"" + recStr +"\", string length= " + recStr.length() );                    sstatus.setText(DateString.getTime() + " Received from " + dg.getAddress() + " - \"" + recStr + "\"");					tdest.setString(dg.getAddress());                 }				else				{					DateString.printAfterTime("[AODV Datagram Server] Timeout");                    sstatus.setText(DateString.getTime() + "  Timeout");				}            }        } catch (InterruptedIOException e) { // QDatagramControlor.receive(dgc,dg): Timeout or interrupt occurred.            //do nothing        } catch (Exception e) { //

⌨️ 快捷键说明

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