java 多个监听_java中监听一个客户端怎么做?监听多个怎么做?
隨著時代的不斷進步與發展,人們對于科學技術的使用也越來越普遍化。人們都開始自己學習編程語言以更好的適應時代的發展。今天就來為大家介紹一下,java中監聽一個客戶端怎么做?監聽多個怎么做?一起來看看吧。
首先我們先啟動服務器端,再啟動客戶端(順序不能亂),當要在客戶端輸入abc時,如下圖所示:
我們再打開服務器端的控制臺,會看到客戶端發送的消息,如下圖所示:
然后我們再輸入123,如下圖所示:
我們再打開客戶端的控制臺,如下圖所示:
這里顯示了服務端回傳的信息,證明我們的通信是沒有問題的了。
以上的服務端只能監聽一個客戶端,要是想監聽多個客戶端,我們對服務端做一下修改,代碼如下所示:public?void?manyServer()?throws?IOException
{
boolean?flag?=?true;
ServerSocket?serverSocket?=?null;
serverSocket?=?new?ServerSocket(5200);
int?clientNum?=?0;
while?(flag)
{
new?SocketServerTherd(serverSocket.accept(),?clientNum)
.start();
clientNum++;
}
serverSocket.close();
}public?class?SocketServerTherd?extends?Thread
{
Socket?socket?=?null;
int?clientNum?=?0;
public?SocketServerTherd(Socket?socket,?int?num)
{
this.socket?=?socket;
this.clientNum?=?num?+?1;
}
public?void?run()
{
try
{
String?line;
BufferedReader?in?=?new?BufferedReader(new?InputStreamReader(socket.getInputStream()));
//由Socket對象得到輸入流,并構造相應的BufferedReader對象
PrintWriter?writer?=?new?PrintWriter(socket.getOutputStream());
//由Socket對象得到輸出流,并構造PrintWriter對象
BufferedReader?br?=?new?BufferedReader(new?InputStreamReader(System.in));
//由系統標準輸入設備構造BufferedReader對象
System.out.println("Client:"?+?in?.readLine());
//在標準輸出上打印從客戶端讀入的字符串
line?=?br.readLine();
//從標準輸入讀入一字符串
while?(!line.equals("end"))
{
//如果該字符串為?"bye",則停止循環
writer.println(line);
//向客戶端輸出該字符串
writer.flush();
//刷新輸出流,使Client馬上收到該字符串
System.out.println("Server:"?+?line);
//在系統標準輸出上打印讀入的字符串
System.out.println("Client:"?+?in?.readLine());
//從Client讀入一字符串,并打印到標準輸出上
line?=?br.readLine();
//從系統標準輸入讀入一字符串
}?//繼續循環
writer.close();?//關閉Socket輸出流
in?.close();?//關閉Socket輸入流
socket.close();?//關閉Socket
}
catch?(Exception?e)
{?//出錯,打印出錯信息
System.out.println("Error."?+?e);
}
}
}
以上就是關于java中監聽一個客戶端怎么做以及監聽多個怎么做的具體內容了。具體的操作還是比較復雜的。如果你對java知識感興趣,想要了解更多常見問題,敬請關注奇Q工具網。
推薦閱讀:
總結
以上是生活随笔為你收集整理的java 多个监听_java中监听一个客户端怎么做?监听多个怎么做?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql版本号超买_MySQL处理高并
- 下一篇: retrofit 会请求两次_Retro