?? chatservermidlet.java
字號:
package example5;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.util.Vector;
import javax.microedition.io.Connector;
import javax.microedition.io.ServerSocketConnection;
import javax.microedition.io.SocketConnection;
import javax.microedition.lcdui.Display;
import javax.microedition.lcdui.Form;
import javax.microedition.midlet.MIDlet;
import javax.microedition.midlet.MIDletStateChangeException;
public class ChatServerMIDlet extends MIDlet implements Runnable{
private ServerSocketConnection ssc = null;
private SocketConnection sc = null;
private Form frm = new Form("聊天紀錄");
private Display dis;
private Vector v = new Vector();
protected void startApp() throws MIDletStateChangeException {
dis = Display.getDisplay(this);
dis.setCurrent(frm);
try{
ssc = (ServerSocketConnection)Connector.open("socket://:9999");
new Thread(this).start();
}catch(Exception ex){
ex.printStackTrace();
}
}
public void run(){
while(true){//不斷接受客戶端連接
try{
sc = (SocketConnection)ssc.acceptAndOpen();
//開一個線程給這個客戶端
ChatThread ct = new ChatThread(sc);
v.addElement(ct);//將線程添加進集合
ct.start();
}catch(Exception ex){
ex.printStackTrace();
}
}
}
class ChatThread extends Thread{
private SocketConnection sc;
private DataInputStream dis;
private DataOutputStream dos;
private String nickName;
public ChatThread(SocketConnection sc){
this.sc = sc;
this.nickName = nickName;
try{
dis = sc.openDataInputStream();
dos = sc.openDataOutputStream();
//讀取昵稱
nickName = dis.readUTF();
frm.append(nickName);
}catch(Exception ex){
ex.printStackTrace();
}
}
public void run(){//負責讀取相應SocketConnection的信息
while(true){
try{
String str = dis.readUTF();
//將該信息發送給所有客戶端
//訪問集合中的所有線程
for(int i=0;i<v.size();i++){
ChatThread ct = (ChatThread)v.elementAt(i);
ct.dos.writeUTF(nickName + "說:" + str);
}
}catch(Exception ex){
ex.printStackTrace();
}
}
}
}
protected void destroyApp(boolean arg0) throws MIDletStateChangeException {
// TODO Auto-generated method stub
}
protected void pauseApp() {
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -