//服务器
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.net.Socket;
public class ThreadServer extends Thread {
private Socket server;
private BufferedReader reader;
private PrintWriter writer;
public ThreadServer(Socket socket) throws IOException {
server = socket;
reader = new BufferedReader(new InputStreamReader(
server.getInputStream()));
writer = new PrintWriter(new OutputStreamWriter(
server.getOutputStream()));
start();
}
public void run() {
try {
while (true) {
String str = reader.readLine();
if (str.equals("END"))
break;
System.out.println("Echoing:" + str);
writer.println(str);
}
} catch (IOException e) {
} finally {
try {
server.close();
} catch (IOException e) {
}
}
}
}
//客户端
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.net.InetAddress;
import java.net.Socket;
public class ThreadClient extends Thread {
private Socket client;
private BufferedReader reader;
private PrintWriter writer;
private static int counter = 0;
private int id = counter++;
private static int threadcount = 0;
public static int getThreadCount() {
return threadcount;
}
public ThreadClient(InetAddress address){
System.out.println("Making client" + id);
threadcount ++;
try{
client = new Socket(address,MultiJobServer.PORT);
}catch (IOException e) {
}
try {
reader = new BufferedReader(new InputStreamReader(client.getInputStream()));
writer = new PrintWriter(new OutputStreamWriter(client.getOutputStream()),true);
start();
} catch (IOException e) {
try {
client.close();
} catch (IOException e2) {
}
}
}
public void run(){
try {
for(int i = 0 ; i < 25 ; i ++){
writer.println("Client " + id + ":" + i);
String str = reader.readLine();
System.out.println(str);
}
writer.println("END");
} catch (Exception e) {
}finally{
try {
client.close();
} catch (IOException e) {
}
threadcount --;
}
}
}