一对多应用设计
各socket对间独立问答,互相间不需要传递信息。
一对多应答型服务器
/**
* 定义消息处理线程类
*/
class Msg extends Thread {
private Socket socket;
public Msg(Socket socket){
this.socket = socket;
}
@Override
public void run(){
this.msg();
}
/**
* 将从客户端读取到的消息写回给客户端
*/
private void msg(){
try(BufferedReader br = new BufferedReader(new InputStreamReader(this.socket.getInputStream()));
PrintWriter pw = new PrintWriter(this.socket.getOutputStream());
){
while(true){
pw.println(br.readLine()+"[ok]");
pw.flush();
}
}catch(Exception e){
e.printStackTrace();
System.out.println(this.socket.getInetAddress()+"短线了!");
}
}
}
public class EchoServer {
public static void main(String[] args){
try(ServerSocket serverSocket = new ServerSocket(8888)){
//等待多客户端连接
while(true){
Socket socket = serverSocket.accept();
new Msg(socket).start();
}
}catch(Exception e){
e.printStackTrace();
}
}
}