您好,登錄后才能下訂單哦!
小編給大家分享一下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進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。