之前介绍的java socket编程,只能是一对一.server端只接受一个client,现在,我们在server端再加一层,让他可以接多个client.
import java.io.*; import java.net.*;
public class MultiServer { public static void main(String[] args) throws IOException { ServerSocket server=new ServerSocket(8000); while (true) { Socket client=server.accept(); 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(); } } }
|
不过,还是有点问题.首先启动server端,client端继续按照之前的进行启动.不过这种模式属于阻塞模式.同时启动多个客户端,只有一个client端可以和服务端通话.当一个client端退出结束后,另一个客户端才可以进入对话.在现实生活中,并不常用.之后,我们再看一下如何解决并发的问题.
阅读(1257) | 评论(0) | 转发(0) |