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

📄 serverthread.java

📁 利用Java Socket写的一段通讯协议
💻 JAVA
字号:
package com.ict.netcom2.net;

import java.io.*;
import java.net.*;

import com.ict.netcom2.hardware.Card;
import com.ict.netcom2.kernel.*;

public class ServerThread extends Thread {
	
	private Socket skt;
	private BufferedReader in;
	private PrintWriter out;
	private Kernel2 core;
	
	public ServerThread(Socket skt, Kernel2 core) {
		this.skt = skt;
		this.core = core;
	}
	
	public void run() {
		try {
			in = new BufferedReader(new InputStreamReader(
					skt.getInputStream()));
			out = new PrintWriter(skt.getOutputStream(), true);
			String cmd;
			while (true) {
				cmd = in.readLine();
				
				System.out.println("Get: "+cmd);
				
				if (cmd.startsWith("exit")) {
					break;
				}
				else if (cmd.startsWith("addprobe")) {
					String ret = core.addProbe(cmd);
					out.println(ret);
					out.println("EOF");
				}
				else if (cmd.startsWith("register")) {
					String str = core.register(cmd);
					if (str == null) {
						out.println("Usage: register [ip] [netproId] [netcomIp]");
						out.println("EOF");
						continue;
					}
					out.println(str);
					out.println("EOF");
				}
				else if (cmd.startsWith("addtask")) {
					String str = core.selectTaskType(cmd);
					if (str == null) {
						out.println("Usage: addtask [ip] [delay] [isRoutine]");
						out.println("EOF");
						continue;
					}
					out.println(str);
					out.println("EOF");
					
					cmd = in.readLine();
					str = core.inputTaskParam(cmd);
					if (str == null) {
						out.println("Type is wrong.");
						out.println("EOF");
						continue;
					}
					out.println(str);
					out.println("EOF");
					
					cmd = in.readLine();
					str = core.addTask(cmd);
					if (str == null) {
						out.println("Parameter is wrong.");
						out.println("EOF");
						continue;
					}
					out.println(str);
					out.println("EOF");
				}
				else if (cmd.startsWith("querytask")) {
					String str = core.queryTask(cmd);
					if (str == null) {
						out.println("Usage: querytask [ip]");
						out.println("EOF");
						continue;
					}
					out.println(str);
					out.println("EOF");
				}
				else if (cmd.startsWith("stoptask")) {
					String str = core.stopTask(cmd);
					if (str == null) {
						out.println("Usage: stoptask [ip] [taskId]");
						out.println("EOF");
						continue;
					}
					out.println(str);
					out.println("EOF");
				}
				else if (cmd.startsWith("getresult")) {
					String str = core.getResult(cmd);
					if (str == null) {
						out.println("Usage: getresult [ip] [taskId]");
						out.println("EOF");
						continue;
					}
					out.println(str);
					out.println("EOF");
				}
				
				else {
					out.println(cmd+ " not supported.");
					out.println("EOF");
				}
			}
		} catch (IOException e) {
			e.printStackTrace();
		}
	}

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -