日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

服务器收到消息加入数组,从聊天服务器发送到聊天客户端的数组更新

發布時間:2025/3/15 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 服务器收到消息加入数组,从聊天服务器发送到聊天客户端的数组更新 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

我發現了一個聊天服務器的代碼,我有一個簡短的問題。這是關于以下摘錄:從聊天服務器發送到聊天客戶端的數組更新

clientOutputStreams.add(作家);

顯然,這種字符串數組應該被發送到聊天客戶端,但我不明白怎么陣列不斷被更新 - 即如何發送到由特殊的聊天客戶端的服務器字符串數組中accumualated然后送回給所有聊天客戶。你做?將不勝感激你的幫助。

import java.io.*;

import java.net.*;

import java.util.*;

public class VerySimpleChatServer {

ArrayList clientOutputStreams;

public class ClientHandler implements Runnable {

BufferedReader reader;

Socket sock;

public ClientHandler(Socket clientSOcket) {

try {

sock = clientSOcket;

InputStreamReader isReader = new InputStreamReader(sock.getInputStream());

reader = new BufferedReader(isReader);

} catch (Exception ex) { ex.printStackTrace(); }

}

public void run() {

String message;

try {

while ((message = reader.readLine()) != null) {

System.out.println("read " + message);

tellEveryone(message);

}

} catch (Exception ex) { ex.printStackTrace(); }

}

}

public static void main(String[] args) {

new VerySimpleChatServer().go();

}

public void go() {

clientOutputStreams = new ArrayList();

try {

ServerSocket serverSock = new ServerSocket(5000);

while(true) {

Socket clientSocket = serverSock.accept();

PrintWriter writer = new PrintWriter(clientSocket.getOutputStream());

clientOutputStreams.add(writer);

Thread t = new Thread(new ClientHandler(clientSocket));

t.start();

System.out.println("got a connection");

}

} catch (Exception ex) { ex.printStackTrace(); }

}

public void tellEveryone(String message) {

Iterator it = clientOutputStreams.iterator();

while (it.hasNext()) {

try {

PrintWriter writer = (PrintWriter) it.next();

writer.println(message);

writer.flush();

} catch (Exception ex) { ex.printStackTrace(); }

}

}

}

2017-10-17

Duke

+1

clientOutputStreams不是一個* strings *數組,而是一個* streams * =>數組,即給客戶端的“管道”。 –

+0

是否意味著如果總共有10個客戶端,那么clientOutputStream的大小是10? –

+0

是的,就是這樣。每次接受客戶端連接時,該列表都會增長。正如下面的答案所述,每次在控制臺上寫入一個字符串時,它都會一次向客戶端廣播一個字符串。 –

總結

以上是生活随笔為你收集整理的服务器收到消息加入数组,从聊天服务器发送到聊天客户端的数组更新的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。