Socket综合运用 线程池
服务器端运用线程缓冲池:
?
?package netTest;
import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.io.OutputStream;import java.io.PrintWriter;import java.net.Socket;import java.net.UnknownHostException;
public class Client {private Socket socket;
public Client(String host, int port) {try {socket = new Socket(host, port);System.out.println("连接成功");} catch (UnknownHostException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}}
private PrintWriter getWriter(Socket socket) {OutputStream out;PrintWriter writer = null;try {out = socket.getOutputStream();writer = new PrintWriter(out);return writer;} catch (IOException e) {e.printStackTrace();}return writer;}
private BufferedReader getReader(Socket socket) {InputStream in;BufferedReader reader = null;try {in = socket.getInputStream();reader = new BufferedReader(new InputStreamReader(in));return reader;} catch (IOException e) {e.printStackTrace();}return null;
}
public void talk() throws IOException {BufferedReader reader = getReader(socket);PrintWriter writer = getWriter(socket);
System.out.println("new connection have accepted "+ socket.getInetAddress() + ":" + socket.getPort());BufferedReader localReader = new BufferedReader(new InputStreamReader(System.in));String msg = "";while ((msg = localReader.readLine()) != null) {writer.print(msg);System.out.println(reader.readLine());}socket.close();}
public static void main(String[] args) throws IOException{new Client("localhost",5201).talk();}}