📄 screenserver.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 + -