今天就跟大家聊聊有關Java 中怎么實現多客戶端通信,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。
浪卡子網站建設公司創(chuàng)新互聯(lián),浪卡子網站設計制作,有大型網站制作公司豐富經驗。已為浪卡子上千提供企業(yè)網站建設服務。企業(yè)網站搭建\外貿營銷網站建設要多少錢,請找那個售后服務好的浪卡子做網站的公司定做!
來看服務端的代碼:
import java.net.*; import java.io.*; import java.util.*; public class Jserver3 { private ServerSocket server; List sManager = new ArrayList(); public Jserver3(){} void startServer() //運行服務器 { try { server=new ServerSocket(719); System.out.println("服務器套接字已創(chuàng)建成功!"); while(true) { Socket socket=server.accept(); System.out.println("已經與客戶端連接"); new J_Thread(socket).start(); sManager.add(socket); System.out.println("當前客戶端連結數:"+sManager.size()); } }catch(Exception e){}finally { try { server.close(); }catch(Exception e){} } } public static void main(String[] args) { Jserver3 server=new Jserver3(); server.startServer(); } class J_Thread extends Thread//與客戶端進行通信的線程類 { Socket socket; //套接字引用變量 private DataInputStream reader; //套接字輸入流 private DataOutputStream writer; //套接字輸出流 J_Thread(Socket socket) //構造函數 { this.socket=socket; } public void run() { try { reader=new DataInputStream(socket.getInputStream());//獲取套接字的輸入流 writer=new DataOutputStream(socket.getOutputStream());//獲取套接字的輸出流 String msg; while((msg=reader.readUTF())!=null)//如果收到客戶端發(fā)來的數據 { //向客戶端發(fā)送信息 writer.writeUTF("您的情書已經收到"); writer.flush(); System.out.println("來自客戶端:"+msg); } }catch(Exception e){}finally { try { sManager.remove(socket); //刪除套接字 //關閉輸入輸出流及套接字 if(reader!=null)reader.close(); if(writer!=null)writer.close(); if(socket!=null)socket.close(); reader=null; writer=null; socket=null; System.out.println("客戶端離開");//向屏幕輸出相關信息 System.out.println("當前客戶端的連接數:"+sManager.size()); }catch(Exception e){} } } } } import java.net.*; import java.io.*; import java.util.*; public class Jserver3 { private ServerSocket server; List sManager = new ArrayList(); public Jserver3(){} void startServer() //運行服務器 { try { server=new ServerSocket(719); System.out.println("服務器套接字已創(chuàng)建成功!"); while(true) { Socket socket=server.accept(); System.out.println("已經與客戶端連接"); new J_Thread(socket).start(); sManager.add(socket); System.out.println("當前客戶端連結數:"+sManager.size()); } }catch(Exception e){}finally { try { server.close(); }catch(Exception e){} } } public static void main(String[] args) { Jserver3 server=new Jserver3(); server.startServer(); } class J_Thread extends Thread//與客戶端進行通信的線程類 { Socket socket; //套接字引用變量 private DataInputStream reader; //套接字輸入流 private DataOutputStream writer; //套接字輸出流 J_Thread(Socket socket) //構造函數 { this.socket=socket; } public void run() { try { reader=new DataInputStream(socket.getInputStream());//獲取套接字的輸入流 writer=new DataOutputStream(socket.getOutputStream());//獲取套接字的輸出流 String msg; while((msg=reader.readUTF())!=null)//如果收到客戶端發(fā)來的數據 { //向客戶端發(fā)送信息 writer.writeUTF("您的情書已經收到"); writer.flush(); System.out.println("來自客戶端:"+msg); } }catch(Exception e){}finally { try { sManager.remove(socket); //刪除套接字 //關閉輸入輸出流及套接字 if(reader!=null)reader.close(); if(writer!=null)writer.close(); if(socket!=null)socket.close(); reader=null; writer=null; socket=null; System.out.println("客戶端離開");//向屏幕輸出相關信息 System.out.println("當前客戶端的連接數:"+sManager.size()); }catch(Exception e){} } } } }
看完上述內容,你們對Java 中怎么實現多客戶端通信有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝大家的支持。
本文名稱:Java中怎么實現多客戶端通信
本文路徑:http://jinyejixie.com/article32/jjhdpc.html
成都網站建設公司_創(chuàng)新互聯(lián),為您提供網站收錄、面包屑導航、移動網站建設、搜索引擎優(yōu)化、小程序開發(fā)、網站維護
聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)