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