package com.devart.woodpecker.hsjg.salemanage.custreturn.controller;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.concurrent.LinkedBlockingDeque;
import java.util.concurrent.ThreadPoolExecutor;
import java.util.concurrent.TimeUnit;
public class BIOServer {
public static final ThreadPoolExecutor threadpoolexcutor=new ThreadPoolExecutor(25,50,60, TimeUnit.SECONDS,new LinkedBlockingDeque());
public void main(String[] args) throws IOException {
ServerSocket serverSocket=null;
try {
serverSocket=new ServerSocket(8080);
System.out.println(Thread.currentThread().getName()+“启动”+8080);
while (true){
Socket socket=serverSocket.accept();
threadpoolexcutor.execute(new SocketProcessor(socket));
System.out.println(“有新的连接,当前线程数量:”+threadpoolexcutor.getActiveCount());
}
} catch (IOException e) {
e.printStackTrace();
}finally {
if(serverSocket!=null){
serverSocket.close();
}
}
}
class SocketProcessor implements Runnable{
private Socket socket;
public SocketProcessor(Socket socket) {
this.socket=socket;
}
@Override
public void run() {
BufferedReader in = null;
PrintWriter out = null;
String body = null;
try {
in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
out = new PrintWriter(socket.getOutputStream(),true);
while ((body = in.readLine()) != null && body.length()!=0) {
System.out.println("server received : " + body);
out.print("2\n");
out.flush();
}
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
in.close();
} catch (IOException e) {
e.printStackTrace();
}
try {
out.close();
} catch (Exception e) {
e.printStackTrace();
}
try {
socket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}
package com.devart.woodpecker.hsjg.salemanage.custreturn.controller;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.Socket;
public class Client {
public static void main(String[] args) throws IOException {
Socket socket= new Socket(“localhost”,8081);
System.out.println(“与8081建立连接,等待输入内容,客户端口号:”+socket.getLocalPort());
//控制台输入内容
BufferedReader re= new BufferedReader(new InputStreamReader(System.in));
String request;
while (true){
request=re.readLine();
socket.getOutputStream().write(request.getBytes());
byte[] response= new byte[1024];
socket.getInputStream().read(response);
System.out.println("收到服务端的响应:"+new String(response));
}
}
}