重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
Java中能接受其他通信实体链接请求的类是ServerSocket,ServerSocket对象用于监听来自客户端的Socket链接,如果没有链接,它将一直等待。如果接收到一个客户端Socket的连接请求,ServerSocket的accept()方法将返回一个与客户端Socket对应的Socket(每个TCP连接有两个Socket),否则该方法将一直阻塞,线程也被阻塞。
创新互联建站主要从事成都网站建设、成都网站制作、网页设计、企业做网站、公司建网站等业务。立足成都服务广元,十年网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:13518219792服务端思路:服务端应该包含多个线程,每个Socket对应一个线程,这个线程负责读取该Socket对应输入流的数据(从客户端发送过来的数据),并将读到的数据向每个Socket输出流发送一次(将一个客户端发送过来的数据“广播”给其他客户端)。
服务端代码:
//服务端主类 public class MyServer { public static ListsocketList = Collections.synchronizedList(new ArrayList ()); public static void main(String[] args) throws IOException { ServerSocket ss = new ServerSocket(30000); while (true) { //此行代码会阻塞,将一直等待别人的连接 Socket s = ss.accept(); socketList.add(s); //每当客户端连接后启动一个ServerThread线程为该客户端服务 new Thread(new ServerThread(s)).start(); } } }