Server:
处理线程:
package
midi.socket;
import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;
public class PowerEchoServer {
/**
* @param args
*/
public static void main(String[] args) {
try {
ServerSocket server = new ServerSocket(10000);
System.out.println("Echo Server started!");
while (true) {
Socket socket = server.accept();
System.out.println("a new comer!");
Runnable r = new EchoHandlerThread(socket, 10000);
Thread t = new Thread(r);
t.start();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;
public class PowerEchoServer {
/**
* @param args
*/
public static void main(String[] args) {
try {
ServerSocket server = new ServerSocket(10000);
System.out.println("Echo Server started!");
while (true) {
Socket socket = server.accept();
System.out.println("a new comer!");
Runnable r = new EchoHandlerThread(socket, 10000);
Thread t = new Thread(r);
t.start();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
package
midi.socket;
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;
public class EchoHandlerThread implements Runnable {
Socket socket = null;
int port = 0;
public EchoHandlerThread(Socket socket, int port) {
this.socket = socket;
this.port = port;
}
public void run() {
try {
InputStream inStream = socket.getInputStream();
OutputStream outStream = socket.getOutputStream();
BufferedReader br = new BufferedReader(new InputStreamReader(inStream));
PrintWriter pw = new PrintWriter(outStream);
pw.write("Welcome ");
pw.write("Type BYE to exit! ");
pw.flush();
boolean done = false;
String line = null;
while(!done && (line=br.readLine())!=null) {
pw.write("Echo:"+line+" ");
pw.flush();
if(line.trim().equalsIgnoreCase("bye"))
done=true;
}
} catch (IOException e) {
e.printStackTrace();
}
finally {
try {
socket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
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;
public class EchoHandlerThread implements Runnable {
Socket socket = null;
int port = 0;
public EchoHandlerThread(Socket socket, int port) {
this.socket = socket;
this.port = port;
}
public void run() {
try {
InputStream inStream = socket.getInputStream();
OutputStream outStream = socket.getOutputStream();
BufferedReader br = new BufferedReader(new InputStreamReader(inStream));
PrintWriter pw = new PrintWriter(outStream);
pw.write("Welcome ");
pw.write("Type BYE to exit! ");
pw.flush();
boolean done = false;
String line = null;
while(!done && (line=br.readLine())!=null) {
pw.write("Echo:"+line+" ");
pw.flush();
if(line.trim().equalsIgnoreCase("bye"))
done=true;
}
} catch (IOException e) {
e.printStackTrace();
}
finally {
try {
socket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}