📄 chatserver.java
字号:
package mypkg;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 + -