//Client.java客户端
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.PrintStream;
import java.net.Socket;
public class Client {
public static void main(String[] args) throws Exception {
// TODO Auto-generated method stub
Socket client = new Socket("localhost",8888);
new Thread(new ClientThread(client)).start();
BufferedReader buf = new BufferedReader(new InputStreamReader(client.getInputStream()));
boolean flag = true;
while(flag){
String rec = buf.readLine();
System.out.println(rec);
}
}
}
class ClientThread implements Runnable{
private Socket client = null;
public ClientThread(Socket client){
this.client = client;
}
public void run(){
try{
BufferedReader input = new BufferedReader(new InputStreamReader(System.in));
PrintStream out = new PrintStream(client.getOutputStream());
while(true){
String content = input.readLine();
out.println(content);
}
}catch(Exception e){
e.printStackTrace();
}
}
}
//Server.java服务器端
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.PrintStream;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.ArrayList;
import java.util.List;
public class Server {
private static List<Socket> clients = new ArrayList<Socket>();
public static void main(String[] args) throws Exception {
ServerSocket server = new ServerSocket(8888);
Socket client = null;
boolean flag = true;
while (flag) {
System.out.println("服务器正在运行,等待连接");
client = server.accept();
clients.add(client);
new Thread(new ServerThread(client, clients)).start();
}
client.close();
server.close();
}
}
class ServerThread implements Runnable {
private Socket client = null;
private PrintStream out = null;
private BufferedReader read = null;
private List<Socket> clients;
public ServerThread(Socket client, List<Socket> clients) throws Exception {
this.client = client;
this.clients = clients;
read = new BufferedReader(new InputStreamReader(client.getInputStream()));
}
@Override
public void run() {
String content = null;
try {
while (true) {
content = read.readLine();
if(content!=null){
for(Socket socket:clients){
if(socket!=client){
out = new PrintStream(socket.getOutputStream());
out.println(content);
}
}
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
}