📄 clienthandlerthread.java
字号:
/**
* ClientHandlerThread.java
*/
package talkServer.business;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.Socket;
import org.eclipse.swt.widgets.Text;
/**
* @author Xiang Zhou
* @date 2006-4-30
*/
public class ClientHandlerThread extends Thread {
// Text text;
Socket receive_sock;
// SET THE SOCKET FOR GETTING DATA
public ClientHandlerThread(Socket accepted_sock/*, Text text*/) {
this.receive_sock = accepted_sock;
// this.text = text;
}
public void destroy() {
super.destroy();
}
public void run() {
super.run();
// GET DATA FROM THE RECEIVED SOCKET AND SHOW ON GUI
String data_str = "";
BufferedReader br_in = null;
try {
br_in = new BufferedReader(new InputStreamReader(receive_sock
.getInputStream()));
data_str = br_in.readLine();
} catch (IOException e2) {
e2.printStackTrace();
}
// text.append("\n" + data_str);
System.out.println(data_str);
// CHECK THE TYPE OF DATA PACKAGE
// REQUEST PACKAGE:
// [0]::[IP]::[PASSWORD] -- LOG ON
// [1]::[IP] -- LOG OUT
String[] data_snippet = data_str.split("::");
PrintWriter pw = null;
try {
pw = new PrintWriter(receive_sock.getOutputStream(), true);
} catch (IOException e3) {
// TODO Auto-generated catch block
e3.printStackTrace();
}
if (data_snippet[0].equals("0")) {
// LOG ON
int answer_type = logOn(data_snippet);
System.out.println(answer_type);
// SEND THE ANSWER TO THE CLIENT
pw.println(answer_type);
} else {
// LOG OUT
int answer_type = logOut(data_snippet[1]);
// SEND THE ANSWER TO THE CLIENT
pw.println(answer_type);
}
}
// RETURN ANSWER:
// 0 -- SUCCESS
// 1 -- IP NOT EXIST, SO NEED REGISTER
// 2 -- PASSWORD WRONG
// 3 -- ALREADY LOG ON
private int logOn(String[] data) {
if (!Maps.checkIP(data[1])) {
return 1;
} else if (Maps.checkState(data[1]) == 1) {
return 3;
} else if (Maps.checkPassword(data[1], data[2])) {
// UPDATE THE USER STATE
Maps.updateState(data[1], 1);
return 0;
} else {
return 2;
}
}
// RETURN ANSWER:
// 0 -- SUCCESS
// 1 -- IP NOT EXIST, SO NEED REGISTER
// 2 -- ALREADY LOG OUT
private int logOut(String ip) {
if (!Maps.checkIP(ip)) {
return 1;
} else if (Maps.checkState(ip) == 1) {
// UPDATE THE USER STATE
Maps.updateState(ip, 0);
return 0;
} else {
return 2;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -