服务器端:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
public class ThreadSocketServer extends Thread {
private Socket client;
public ThreadSocketServer(Socket client) {
this.client = client;
}
public void run() {
try {
BufferedReader in = new BufferedReader(new InputStreamReader(client
.getInputStream()));
PrintWriter out = new PrintWriter(client.getOutputStream());
while (true) {
String str = in.readLine();
System.out.println(str);
out.println("has receive....");
out.flush();
if (str.equals("end"))
break;
}
client.close();
} catch (IOException ex) {
} finally {
}
}
public static void main(String[] args)throws IOException{
ServerSocket server=new ServerSocket(6060);
while(true){
//多用户的线程
ThreadSocketServer tss=new ThreadSocketServer(server.accept());
tss.start();
}
}
}
客户端:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.InetAddress;
import java.net.Socket;
import java.net.UnknownHostException;
public class SocketClient {
static Socket client;
public static void main(String[] args) throws UnknownHostException, IOException{
//建立的是本机地址 所以用getLocalHost
client = new Socket(InetAddress.getLocalHost(),6060);
//接通通道 准备接受信息
BufferedReader in=new BufferedReader(new InputStreamReader(client.getInputStream()));
PrintWriter out=new PrintWriter(client.getOutputStream());
//读取键盘输入的字符
BufferedReader wt=new BufferedReader(new InputStreamReader(System.in));
while(true){
//估计readLine也会阻断线程
String str=wt.readLine();
out.println(str);
out.flush();
if(str.equals("end")){
break;
}
System.out.println(in.readLine());
}
client.close();
}
}