📄 serverframe.java
字号:
import java.io.*;
import java.awt.*;
import java.awt.event.*;
import java.net.*;
import java.util.ArrayList;
public class ServerFrame implements ActionListener {
private Frame f;
private TextArea ta;
private MenuBar mb;
private MenuItem mi_start, mi_stop, mi_exit;
private Menu m;
boolean isStop;
static ArrayList clients;
ServerFrame() {
f = new Frame("我的聊天室");
ta = new TextArea();
mb = new MenuBar();
m = new Menu("管理");
mi_start = new MenuItem("Start");
mi_stop = new MenuItem("Stop");
mi_exit = new MenuItem("Exit");
mb.add(m);
m.add(mi_start);
m.add(mi_stop);
m.add(mi_exit);
mi_start.addActionListener(this);
mi_exit.addActionListener(this);
f.setMenuBar(mb);
f.add(ta);
f.setSize(200, 150);
f.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
f.show();
}
public void actionPerformed(ActionEvent e) {
String cmd = e.getActionCommand();
if (cmd.equals("Start")) {
System.out.println("Start Pressed");
try {
System.out.println("Server will start");
ServerSocket server = new ServerSocket(6000);
while(!isStop){
Socket Client = server.accept();
Service ss = new Service(Client);
}
}
catch (Exception ex) {
ex.printStackTrace();
}
}
if(cmd.equals("Stop")){
isStop = false;
System.exit(0);
}
}
public static void main(String[] args) {
new ServerFrame();
}
}
class Service extends Thread{
String data;
BufferedReader InputS;
PrintStream OutputS;
Socket Client;
static String Content="";
public Service(Socket ClientSocket) throws Exception{
Client = ClientSocket;
try {
InputS = new BufferedReader(new InputStreamReader(Client.getInputStream()));
OutputS = new PrintStream( Client.getOutputStream(),true);
}
catch (Exception ex) {
System.out.println("Cannot Connect with Client !");
return;
}
this.start();
}
public void run() {
System.out.println (this);
try {
while(true){
data = InputS.readLine();
if(data.equals("\u0001")){
OutputS.println(Content);
}else{
Content = data +"\u0001"+ Content ;
System.out.println (Content);
if (Content==null) break;
else{
OutputS.println(Content);
System.out.println("From Client: " + Content);
}
}
}
Client.close();
}
catch (Exception ex) {
ex.printStackTrace();
}
try {
Client.close();
}
catch (Exception ex) {
ex.printStackTrace();
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -