子进程
效果
访问http://localhost:8088/show 显示
访问http://localhost:8088/hide 隐藏
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintStream;
import java.net.Socket;
import java.util.Scanner;
import javax.swing.JFrame;
/**
* tcp 方式控制显示
*
*/
public class ServerThread3 extends Thread {
private Socket socket = null;
private static Logger logger;
private static PrintStream display;
private static DataOutputStream out;
private static DataInputStream in;
private static Scanner sc;
JFrame button;
static {
logger = Logger.getLogger("Client");
display = System.out;
sc = new Scanner(System.in);
}
public ServerThread3(Socket socket) {
this.socket = socket;
}
public ServerThread3(Socket socket2, JFrame a) {
this.socket = socket2;
this.button = a;
}
public void checkCommand(byte lData) {
switch (lData) {
case '1':
button.show();
break;
case '0':
button.hide();
break;
case 'q':
// socket.close();
break;
default:
System.out.println("default break:" + lData);
break;
}
}
@Override
public void run() {
try {
socket.setSoTimeout(3000);
InputStream in = socket.getInputStream();
BufferedReader br = new BufferedReader(new InputStreamReader(in));
String line = br.readLine();
System.out.println(line + line + Thread.currentThread().getName());
String resource = line.substring(line.indexOf('/') + 1, line.lastIndexOf('/') - 5);
String method = line.substring(0, line.indexOf('/') - 1).toLowerCase();
// 获得请求的资源的地址
// resource=URLDecoder.decode(resource, "UTF-8");//反编码 URL 地址
// 读取客户端发送来的消息
// while((line = br.readLine())!=null&&(!"".equals(line))) {
System.out.println("客户端:" + line+Thread.currentThread().getName());
// }
logger.info("readLine end:" + resource);
if (!"get".equals(method)) {
logger.info("method:" + method.toLowerCase());
// return ;
} else {
if ("hide".equals(resource)) {
button.hide();
}
if ("show".equals(resource)) {
button.show();
}
}
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));
// 创建HTTP响应结果
// 创建响应协议、状态
String httpStatus = "HTTP/1.1 200 OK\r\n";
// 创建响应头
String responseHeader = "Content-Type:text/html\r\n\r\n";
bw.write(httpStatus);
bw.write("Access-Control-Allow-Origin:*\r\n");
bw.write("Access-Control-Allow-Headers:*\r\n");
bw.write("Access-Control-Allow-Method:POST,GET,OPTIONS \r\n");
bw.write(responseHeader);
bw.write(resource + "ok\n");
bw.flush();
} catch (Exception e) {
e.printStackTrace();
} finally {
// 关闭资源
try {
// if(pw!=null)
// pw.close();
// if(os!=null)
// os.close();
// if(br!=null)
// br.close();
// if(isr!=null)
// isr.close();
// if(is!=null)
// is.close();
if (socket != null)
socket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
super.run();
}
void response(String res) {
}
}