java 网络编程-TCP-多人群聊(自问自答)
发布时间:2020-12-15 07:54:45 所属栏目:Java 来源:网络整理
导读:在线聊天室 服务器: public class Chat {public static void main(String[]args) throws IOException{ System.out.println("服务器启动中..."); //创建服务器 ServerSocket server=new ServerSocket(9999); //阻塞式等待连接,当客户端Socket创建好以后才开
在线聊天室
服务器: public class Chat { public static void main(String[]args) throws IOException { System.out.println("服务器启动中..."); //创建服务器 ServerSocket server=new ServerSocket(9999); //阻塞式等待连接,当客户端Socket创建好以后才开启 while(true) { Socket client=server.accept(); System.out.println("一个客户端建立了连接"); new Thread(()->{ DataInputStream dis = null; DataOutputStream dos = null; try { dis = new DataInputStream(client.getInputStream()); dos = new DataOutputStream(client.getOutputStream()); } catch (IOException e1) { e1.printStackTrace(); } boolean flag=true; while(flag) { String msg = null; try { msg = dis.readUTF(); dos.writeUTF(msg); dos.flush(); } catch (IOException e) { //当断掉客户端连接时,不用循环再读取数据 flag=false; } //返回消息 } try { if(null!=dos) { dos.close(); } } catch (IOException e) { e.printStackTrace(); } try { if(null!=dis) { dis.close(); } } catch (IOException e) { e.printStackTrace(); } try { if(null!=client) { client.close(); } } catch (IOException e) { e.printStackTrace(); } }).start(); } } } 客户端: public class Client { public static void main(String[]args) throws UnknownHostException,IOException { System.out.println("客户端启动中..."); Socket client=new Socket("localhost",9999); //客户端发送消息 BufferedReader br=new BufferedReader(new InputStreamReader(System.in)); DataOutputStream dos=new DataOutputStream(client.getOutputStream()); DataInputStream dis =new DataInputStream(client.getInputStream()); boolean flag=true; while(flag) { System.out.println("请输入消息"); String msg=br.readLine(); dos.writeUTF(msg); dos.flush(); //获取消息 msg=dis.readUTF(); System.out.println(msg); } dos.close(); dis.close(); client.close(); } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |