📄 chatserver.java
字号:
package myQQ;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
public class ChatServer extends Peer implements Runnable{
private Thread exac;
private ServerSocket ss;
private Socket s;
public ChatServer(int port){
super();
exac = new Thread(this);
try {
ss = new ServerSocket(port);
gui.setStatusContent("The chatserver started.");
/* Log.getLogger().info("The server started.");*/
} catch (IOException e) {
gui.setStatusContent("Could not caeate ChatServerSocket.");
}
}
public void start(){
exac.start();
}
public void run() {
while(true){
String message = null;
switch(getStatus()){
case Utility.BEGIN_CONNECT:
try {
s = ss.accept();
in = new BufferedReader(new InputStreamReader(s.getInputStream()));
out = new PrintWriter(s.getOutputStream());
setStatus(Utility.CONNECTED);
} catch (IOException e) {
gui.setStatusContent("Could not create ChatSocket.");
}
System.out.println("Server:Status is begin.status is " + getStatus());
try {
Thread.sleep(100);
} catch (InterruptedException e) {
e.printStackTrace();
}
break;
case Utility.CONNECTED:
message = receive();
if(message!=null){
if(message.equals("DISCONNECT")){
setStatus(Utility.DISCONNECTING);
send(Utility.MSG,"DISCONNECT");
gui.setStatusContent("Diconnected.");
}else{
gui.addChatContentOnly(message);
}
}
System.out.println("Server:Status is connected.status is " + getStatus());
break;
case Utility.DISCONNECTING:
/* setStatus(Utility.BEGIN_CONNECT);*/
try{
ss.close();
s.close();
}catch(Exception e){
gui.setStatusContent("Could not close.");
}
close();
gui.setStatusContent("The server disconnected.");
System.out.println("Server:Status is disconnected.status is " + getStatus());
return;
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -