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

📄 server.java

📁 j2me学习 简单例子
💻 JAVA
字号:
package example.demowireless.datagram;

import java.io.IOException;

import javax.microedition.io.Connector;
import javax.microedition.io.Datagram;
import javax.microedition.io.DatagramConnection;
import javax.microedition.lcdui.Alert;
import javax.microedition.lcdui.AlertType;
import javax.microedition.lcdui.Command;
import javax.microedition.lcdui.CommandListener;
import javax.microedition.lcdui.Display;
import javax.microedition.lcdui.Displayable;
import javax.microedition.lcdui.Form;
import javax.microedition.lcdui.StringItem;
import javax.microedition.lcdui.TextField;
import javax.microedition.midlet.MIDletStateChangeException;

public class Server implements CommandListener, Runnable {
	private DatagramDemo parent;
	private Display display;
	private Form f;
	private StringItem si;
	private TextField tf;
	private Command sendCommand = new Command("Send", Command.ITEM, 1);
	Sender sender;
	private String address;

	public Server(DatagramDemo m) {
		parent = m;
		display = Display.getDisplay(parent);
		f = new Form("Datagram Server");
		si = new StringItem("Status:", " ");
		tf = new TextField("Send:", "", 30, TextField.ANY);
		f.append(si);
		f.append(tf);
		f.addCommand(sendCommand);
		f.setCommandListener(this);
		display.setCurrent(f);
	}

	public void start() {
		Thread t = new Thread(this);
		t.start();
	}

	public void run() {
		try {
			si.setText("Waiting for connection");
			DatagramConnection dc = (DatagramConnection) Connector
					.open("datagram://:5555");
			sender = new Sender(dc);
			while (true) {
				Datagram dg = dc.newDatagram(100);
				dc.receive(dg);
				address = dg.getAddress();
				si.setText("Message received - "
						+ new String(dg.getData(), 0, dg.getLength()));
			}
		} catch (IOException ioe) {
			Alert a = new Alert("Server", "Port 5000 is already taken.", null,
					AlertType.ERROR);
			a.setTimeout(Alert.FOREVER);
			a.setCommandListener(this);
			display.setCurrent(a);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

	public void commandAction(Command c, Displayable s) {
		if (c == sendCommand && !parent.isPaused()) {
			if (address == null) {
				si.setText("No destination address");
			} else {
				sender.send(address, tf.getString());
			}
		}
		if (c == Alert.DISMISS_COMMAND) {
			try {
				parent.destroyApp(true);
			} catch (MIDletStateChangeException e) {
				e.printStackTrace();
			}
			parent.notifyDestroyed();
		}
	}

	public void stop() {
	}

}

⌨️ 快捷键说明

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