成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Java多線程服務器如何應對相關鏈接問題

開發 后端
Java多線程服務器需要我們不斷的進行相關問題的學習,在不斷的學習中才能更好的掌握相關知識。希望大家有所幫助。

Java多線程服務器是目前很多企業都在使用的一種服務器方式。相關的問題還是需要不斷的學習,只有不斷的學習才能更好的掌握相關的問題解決方案。希望大家有所收獲。

前面的示例教給您基礎知識,但并不能令您更深入。如果您到此就停止了,那么您一次只能處理一臺客戶機。原因是 handleConnection() 是一個阻塞方法。只有當它完成了對當前連接的處理時,服務器才能接受另一個客戶機。在多數時候,您將需要(也有必要)一個Java多線程服務器。

要開始同時處理多臺客戶機,并不需要對 RemoteFileServer 作太多改變。事實上,要是我們前面討論過待發(backlog),那我們就只需改變一個方法,雖然我們將需要創建一些新東西來處理進入的連接。這里我們還將向您展示Java多線程服務器 ServerSocket 如何處理眾多等待(備份)使用服務器的客戶機。本示例對線程的低效使用,所以請耐心點。

接受(太多)連接

這里我們實現改動過的 acceptConnections() 方法,它將創建一個能夠處理待發請求的 ServerSocket ,并告訴 ServerSocket 接受連接:

Java代碼

  1. public void acceptConnections() {   
  2. try {   
  3. ServerSocket server = new ServerSocket(listenPort, 5);   
  4. Socket incomingConnection = null;   
  5. while (true) {   
  6. incomingConnection = server.accept();   
  7. handleConnection(incomingConnection);   
  8. }   
  9. } catch (BindException e) {   
  10. System.out.println("Unable to bind to port " + listenPort);   
  11. } catch (IOException e) {   
  12. System.out.println("Unable to instantiate a ServerSocket on port: " + listenPort);   
  13. }   
  14. }   
  15. public void acceptConnections() {  
  16. try {  
  17. ServerSocket server = new ServerSocket(listenPort, 5);  
  18. Socket incomingConnection = null;  
  19. while (true) {  
  20. incomingConnection = server.accept();  
  21. handleConnection(incomingConnection);  
  22. }  
  23. } catch (BindException e) {  
  24. System.out.println("Unable to bind to port " + listenPort);  
  25. } catch (IOException e) {  
  26. System.out.println("Unable to instantiate a ServerSocket on port: " + listenPort);  
  27. }  

 

新的 server 仍然需要 acceptConnections() ,所以這些代碼實際上是一樣的。突出顯示的行表示一個重大的不同。對這個多線程版,我們現在可以指定客戶機請求的最大數目,這些請求都能在實例化 ServerSocket 期間處于待發狀態。如果我們沒有指定客戶機請求的最大數目,則我們假設使用缺省值 50。

這里是它的工作機制。假設我們指定待發數(backlog 值)是 5 并且有五臺客戶機請求連接到我們的服務器。我們的服務器將著手處理第一個連接,但處理該連接需要很長時間。由于我們的待發值是 5,所以我們一次可以放五個請求到隊列中。我們正在處理一個,所以這意味著還有其它五個正在等待。等待的和正在處理的一共有六個。當我們的服務器仍忙于接受一號連接(記住隊列中還有 2―6 號)時,如果有第七個客戶機提出連接申請,那么,在Java多線程服務器中該第七個客戶機將遭到拒絕。我們將在帶有連接池服務器示例中說明如何限定能同時連接的客戶機數目。

【編輯推薦】

  1. Java多線程如何創建多個線程
  2. Java多線程優化之偏向鎖原理分析
  3. Java多線程初學者指南系列教程
  4. 使用Java多線程實現任務分發
  5. 用Java多線程實現無阻塞讀取遠程文件
責任編輯:張浩 來源: 互聯網
相關推薦

2010-03-19 14:01:55

Java Socket

2010-03-16 18:40:59

Java多線程編程

2010-03-16 19:29:26

Java多線程操作

2010-03-16 13:47:48

Java多線程服務器

2010-03-17 17:54:25

java Socket

2009-02-18 10:41:16

多線程服務器穩定Java

2009-02-27 11:15:00

多線程服務器MTS專用服務器

2013-11-08 17:10:10

2010-07-20 13:41:30

Telnet服務器

2012-09-28 11:14:20

2009-07-03 17:18:34

Servlet多線程

2011-12-08 13:04:06

JavaNIO

2011-03-09 13:13:21

2020-12-02 09:28:00

DDoS攻擊網絡攻擊網絡安全

2018-11-28 09:53:50

游戲服務器線程

2010-07-14 09:52:50

SQL Server服

2010-09-02 11:20:47

SQL刪除

2018-12-20 09:36:24

2011-06-30 18:03:58

QT 多線程 服務器

2015-08-10 09:25:12

服務器數據丟失
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 99久久久久久99国产精品免 | 99久久久久久久 | 伊人网综合在线观看 | 久久久久久国产精品久久 | 色婷婷激情综合 | 国产第一亚洲 | 在线观看久草 | 亚洲欧美精品久久 | a黄毛片| 国产美女h视频 | 久久久久精 | a久久| 国产丝袜人妖cd露出 | 亚洲vs天堂 | 国产视频1 | 国产精品久久久久一区二区三区 | 免费在线一区二区三区 | 精品久久国产视频 | 欧美精品一区在线发布 | 99在线免费视频 | 九色在线视频 | 一区二区三区av夏目彩春 | 狠狠干天天干 | 欧美一区二区三区高清视频 | 91视频官网 | 国产精品久久久久久婷婷天堂 | 午夜av电影 | 国产精品2区 | 波多野结衣精品在线 | 国产色婷婷精品综合在线手机播放 | 亚洲视频网| 国产电影一区 | 国产不卡视频 | 麻豆久久久9性大片 | 欧美一区二区黄 | 91麻豆产精品久久久久久夏晴子 | 国产色99精品9i | 欧美精品区 | 国产精品久久久久久中文字 | 国产成人精品久久 | 激情91|