功能:使用多线程实现多客户端与服务器进行通信。
参考书:Thingking in Enterprise Java by Bruce Ecket et. Al.
客户端:
import java.io.*;
import java.net.*;
// 客户端线程
class ClientThread extends Thread {
private Socket socket;
private BufferedReader in;
private PrintWriter out;
private static int counter = 0;
private int id = counter++;
private static int threadcount = 0;
public static int threadCount() {
return threadcount;
}
public ClientThread(InetAddress addr) {
System.out.println("Making client " + id);
threadcount++;
try {
socket = new Socket(addr, MultiClient.PORT);
} catch(IOException e) {
System.err.println("Socket failed");
}
try {
in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
out = new PrintWriter(new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())), true);
//调用run()
start();
}ca