📄 server.java
字号:
/*
* Created on 2007.12.25.
*/
package conferenceroom;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.HashMap;
/**
* User info.
* @author 刘佳
*/
public class Server extends Thread {
public static Server instance = null;
private int serverPort = 6543;
private Channel channel = new Channel();
private boolean useServer = false;
private Server() {
try {
serverPort = 6543;
} catch (NumberFormatException e) {
e.printStackTrace();
}
useServer = true;
if (useServer) {
this.setDaemon(true);
this.start();
}
}
public static void initialize() {
if (instance == null) {
instance = new Server();
}
}
public static int getServerPort() {
if (instance == null) {
initialize();
}
return instance.serverPort;
}
public static boolean isUseServer() {
if (instance == null) {
initialize();
}
return instance.useServer;
}
public Channel getChannel(){
return channel;
}
public void run() {
final ServerSocket serverSocket;
try {
serverSocket = new ServerSocket(serverPort);
} catch (IOException e) {
System.out.println("Server Socket Create Exception... : " + e);
e.printStackTrace();
return;
}
System.out.println("Server listening....");
while (true) {
try {
Thread t = new Thread() {
Socket client_connection = serverSocket.accept();
public void run() {
try {
InputStream input =
client_connection.getInputStream();
OutputStream output =
client_connection.getOutputStream();
BufferedReader rd =
new BufferedReader(
new InputStreamReader(input));
String line = rd.readLine();
HashMap<String,String> header = new HashMap<String,String>();
do {
line = rd.readLine();
if (line.length() == 0) {
break;
}
int idx = line.indexOf(":");
if (idx >= 0) {
String name = line.substring(0, idx).trim();
String value =
line.substring(idx + 1).trim();
header.put(name, value);
System.out.println(name+":"+value);
} else {
System.err.println(
"Unknown header : " + line);
}
} while (true);
String roomid = header.get("Roomid");
String roomname = header.get("Roomname");
String userid = header.get("Userid");
String username = header.get("Username");
User user = new User(userid,username,output);
Communicator c = new Communicator();
c.service(user, roomid,roomname, input);
} catch (IOException e) {
e.printStackTrace();
} finally {
if (client_connection != null) {
try {
client_connection.close();
} catch (IOException e1) {
e1.printStackTrace();
}
}
}
}
};
t.setDaemon(true);
t.start();
} catch (IOException e) {
System.out.println("Client IO Exception... : " + e);
e.printStackTrace();
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -