📄 server.java~90~
字号:
import java.net.ServerSocket;
import java.io.IOException;
/**
* <p>Title: </p>
*
* <p>Description: </p>
*
* <p>Copyright: Copyright (c) 2006</p>
*
* <p>Company: </p>
*
* @author not attributable
* @version 1.0
*/
public class Server implements Runnable {
private int port;
private java.net.ServerSocket serverSocket;
private java.util.ArrayList list = new java.util.ArrayList();
private ChatServer frame = null;
public Server(ChatServer frame) {
this.frame = frame;
}
public void start() throws IOException {
serverSocket = new ServerSocket(port);
new Thread(this).start();
}
public void run() {
try {
while (true) {
java.net.Socket client = serverSocket.accept();
ClientWorker cw = new ClientWorker(client);
list.add(cw);
new Thread(cw).start();
}
} catch(Exception e) {
stop();
}
}
public void stop() {
for(int i=0;i<list.size();i++) {
ClientWorker cw = (ClientWorker) list.get(i);
cw.send(line);
}
}
public int getPort() {
return port;
}
public void setPort(int port) {
this.port = port;
}
class ClientWorker implements Runnable {
java.net.Socket socket = null;
java.io.PrintWriter out;
java.io.BufferedReader in;
ClientWorker(java.net.Socket socket) throws IOException {
this.socket = socket;
out = new java.io.PrintWriter(
new java.io.BufferedWriter(
new java.io.OutputStreamWriter(
socket.getOutputStream())));
in = new java.io.BufferedReader(
new java.io.InputStreamReader(
socket.getInputStream()));
}
public void send(String s) {
out.println(s);
out.flush();
}
public void close() {
try {
socket.close();
} catch (IOException ex) {}
}
public void run() {
try {
String line = null;
while ((line = in.readLine()) != null) {
frame.jTextArea1.append(line);
frame.jTextArea1.append("\n");
for(int i=0;i<list.size();i++) {
ClientWorker cw = (ClientWorker) list.get(i);
cw.send(line);
}
}
} catch(Exception e) {
}
list.remove(this);
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -