小编给大家分享一下java如何实现在线聊天室,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!
在线聊天室
服务器:
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(); } }
以上是“java如何实现在线聊天室”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注亿速云行业资讯频道!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。