📄 controlserver.java
字号:
/**
*
*/
package proxy;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.InterruptedIOException;
import java.io.OutputStream;
import java.net.Socket;
import java.util.*;
/**
* 控制服务
* @author liwen
*
*/
public class ControlServer implements Service {
protected UserAuthorized userAuthorized;
public UserAuthorized getUserAuthorized() throws Exception {
return null;
}
private Socket socket;
/**
*
*/
public ControlServer() {
// TODO Auto-generated constructor stub
}
public void serve(Socket soc) throws Exception {
this.socket = soc;
doProxy(soc);
}
private void doProxy(Socket socket) throws Exception {
InputStream in = socket.getInputStream();
OutputStream out = socket.getOutputStream();
try {
int ir;
byte bytes[] = new byte[ProxyServer.BUFER_SIZE];
byte[] rtnBuf = null;
String UserStr = "";
boolean recEnd = false;
while (true) {
try {
if ((ir = in.read(bytes)) > 0) {
for (int i = 0; i < ir; i++) {
int c = bytes[i];
UserStr = UserStr + (char) c;
if ((char)c == '\n'){
recEnd = true;
break;
}
}
} else if (ir < 0) {
break;
}
if (recEnd){
break;
}
} catch (InterruptedIOException e) {
// System.out.println(" put server InterruptedIOException: "
// + e);
}
}
String[] user = UserStr.split("\r");
//判断命令
if (user.length > 0) {
if (user[0].equals(ProxyServer.COMMAND_LINE_LOGIN)){
if (user.length == 4) {
if (this.userAuthorized == null){
this.userAuthorized = new UserAuthorized(user[1],
user[2], user[2], socket.getPort());
}
rtnBuf = this.userAuthorized.GetTokenString().getBytes();
System.out.println(" recive login " + rtnBuf + ":addr:" + user[0]
+":usename:" + user[1] + ":passwd:" + user[2]);
out.write(rtnBuf, 0, ir);
out.flush();
}
}else if (user[0].equals(ProxyServer.COMMAND_LINE_DISCONNECT)){
System.out.println("recive disconnect ");
//关闭所有连接
if (ProxyServer.connections != null){
Iterator conns = ProxyServer.connections.iterator();
while (conns.hasNext()) {
Connection c = (Connection) conns.next();
c.pleaseStop();
}
ProxyServer.connections.clear();
}
this.userAuthorized = null;
this.socket.getInputStream().close();
this.socket.getOutputStream().close();
this.socket.close();
}else{
return;
}
}
} catch (Exception e0) {
Logs.log("Pipe exception: " + e0);
}
}
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -