⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 clienthandlerthread.java

📁 一个基于eclipse插件开发的聊天程序
💻 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 + -