新聞中心
這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
Android實現(xiàn)C/S聊天室-創(chuàng)新互聯(lián)
Java中能接受其他通信實體鏈接請求的類是ServerSocket,ServerSocket對象用于監(jiān)聽來自客戶端的Socket鏈接,如果沒有鏈接,它將一直等待。如果接收到一個客戶端Socket的連接請求,ServerSocket的accept()方法將返回一個與客戶端Socket對應(yīng)的Socket(每個TCP連接有兩個Socket),否則該方法將一直阻塞,線程也被阻塞。
服務(wù)端思路:服務(wù)端應(yīng)該包含多個線程,每個Socket對應(yīng)一個線程,這個線程負責讀取該Socket對應(yīng)輸入流的數(shù)據(jù)(從客戶端發(fā)送過來的數(shù)據(jù)),并將讀到的數(shù)據(jù)向每個Socket輸出流發(fā)送一次(將一個客戶端發(fā)送過來的數(shù)據(jù)“廣播”給其他客戶端)。
服務(wù)端代碼:
//服務(wù)端主類 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線程為該客戶端服務(wù) new Thread(new ServerThread(s)).start(); } } }
名稱欄目:Android實現(xiàn)C/S聊天室-創(chuàng)新互聯(lián)
分享網(wǎng)址:http://www.dlmjj.cn/article/pdhjh.html