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

Java多線程服務器如何進行組建和修改

開發 后端
Java多線程服務器如何才能更好的進行相關服務?這個就需要廣大的程序員不斷的進行相關知識的學習,希望大家有所收獲。

Java多線程服務器一直是我們不斷的研究和創新的技術,下面我們就來看看如何才能更好的使用相關服務。們的Java多線程服務器研究完了。在我們接著討論帶有連接池示例之前,讓我們回顧一下創建和使用“多線程版”的服務器的步驟:

修改 acceptConnections() 以用缺省為 50(或任何您想要的大于 1 的指定數字)實例化 ServerSocket 。

修改 ServerSocket 的 handleConnection() 以用 ConnectionHandler 的一個實例生成一個新的 Thread 。


借用 RemoteFileServer 的 handleConnection() 方法的代碼實現 ConnectionHandler 類。
附: MultithreadedRemoteFileServer 的完整代碼清單

Java代碼

  1. import java.io.*;   
  2. import java.net.*;   
  3. public class MultithreadedRemoteFileServer {   
  4. protected int listenPort;   
  5. public MultithreadedRemoteFileServer(int aListenPort) {   
  6. listenPort = aListenPort;   
  7. }   
  8. public void acceptConnections() {   
  9. try {   
  10. ServerSocket server = new ServerSocket(listenPort, 5);   
  11. Socket incomingConnection = null;   
  12. while (true) {   
  13. incomingConnection = server.accept();   
  14. handleConnection(incomingConnection);   
  15. }   
  16. }catch (BindException e) {   
  17. System.out.println("Unable to bind to port " + listenPort);   
  18. } catch (IOException e) {   
  19. System.out.println("Unable to instantiate a ServerSocket on port: " + listenPort);   
  20. }   
  21. }   
  22. public void handleConnection(Socket connectionToHandle) {   
  23. new Thread(new ConnectionHandler(connectionToHandle)).start();   
  24. }   
  25. public static void main(String[] args) {   
  26. MultithreadedRemoteFileServer server = new MultithreadedRemoteFileServer(3000);   
  27. server.acceptConnections();   
  28. }   
  29. }   
  30. import java.io.*;  
  31. import java.net.*;  
  32. public class MultithreadedRemoteFileServer {  
  33. protected int listenPort;  
  34. public MultithreadedRemoteFileServer(int aListenPort) {  
  35. listenPort = aListenPort;  
  36. }  
  37. public void acceptConnections() {  
  38. try {  
  39. ServerSocket server = new ServerSocket(listenPort, 5);  
  40. Socket incomingConnection = null;  
  41. while (true) {  
  42. incomingConnection = server.accept();  
  43. handleConnection(incomingConnection);  
  44. }  
  45. } catch (BindException e) {  
  46. System.out.println("Unable to bind to port " + listenPort);  
  47. } catch (IOException e) {  
  48. System.out.println("Unable to instantiate a ServerSocket on port: " + listenPort);  
  49. }  
  50. }  
  51. public void handleConnection(Socket connectionToHandle) {  
  52. new Thread(new ConnectionHandler(connectionToHandle)).start();  
  53. }  
  54. public static void main(String[] args) {  
  55. MultithreadedRemoteFileServer server = new MultithreadedRemoteFileServer(3000);  
  56. server.acceptConnections();  
  57. }  
  58. }  

ConnectionHandler 的完整代碼清單

Java代碼

  1. import java.io.*;   
  2. import java.net.*;   
  3. public class ConnectionHandler implements Runnable {   
  4. protected Socket socketToHandle;   
  5. public ConnectionHandler(Socket aSocketToHandle) {   
  6. socketToHandle = aSocketToHandle;   
  7. }   
  8. public void run() {   
  9. try {   
  10. PrintWriter streamWriter = new PrintWriter(socketToHandle.getOutputStream());   
  11. BufferedReader streamReader = new BufferedReader(new InputStreamReader(socketToHandle.getInputStream()));   
  12. String fileToRead = streamReader.readLine();   
  13. BufferedReader fileReader = new BufferedReader(new FileReader(fileToRead));   
  14. String line = null;   
  15. while ((line = fileReader.readLine()) != null)   
  16. streamWriter.println(line);   
  17. fileReader.close();   
  18. streamWriter.close();   
  19. streamReader.close();   
  20. } catch (Exception e) {   
  21. System.out.println("Error handling a client: " + e);   
  22. }   
  23. }   
  24. }  

以上就是對Java多線程服務器相關使用的介紹。希望大家有所收獲。

【編輯推薦】

  1. Java多線程程序如何掌握基本語法
  2. Java多線程同步具體實例講解
  3. Java多線程語句具體分類的詳細介紹
  4. Java多線程優化之偏向鎖原理分析
  5. Java多線程初學者指南系列教程
責任編輯:張浩 來源: IT168網站
相關推薦

2010-08-03 15:31:42

Ubuntu NFS服

2011-07-25 10:48:34

服務器虛擬服務器

2010-03-19 14:01:55

Java Socket

2011-07-14 14:58:19

網絡服務器配置服務器

2009-08-21 16:13:45

代理服務器設置迅雷

2010-03-16 17:39:36

Java多線程鎖

2010-03-17 18:21:54

Java多線程靜態數據

2010-03-18 19:39:44

Java Socket

2010-03-16 10:50:21

Java多線程服務器

2011-06-29 10:06:23

Linux服務器優化

2017-08-04 10:47:20

2018-07-20 10:12:27

租用服務器速度測試

2010-03-16 10:32:36

Java線程撥號器

2010-06-02 18:51:35

搭建SVN服務器

2011-07-04 10:20:25

服務器云時代

2011-10-26 11:21:47

服務器虛擬化存儲管理

2012-12-03 14:21:02

服務器群集

2011-08-02 16:46:33

FoxmailServ郵件服務器域管理

2009-02-27 11:15:00

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

2010-03-05 10:10:04

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 成人免费看片 | 嫩草一区二区三区 | 久久久一区二区 | 成人区一区二区三区 | 欧美激情久久久 | 黄色a三级 | 午夜激情免费 | 国产精品成人一区二区三区 | 日韩欧美中文字幕在线视频 | 国产精品久久久久免费 | 久久国际精品 | 羞羞的视频免费看 | 久久久成人动漫 | 成人在线h| 成人免费一区二区三区视频网站 | 欧美一区二区三区在线观看视频 | 国产区精品在线观看 | 天天人人精品 | 欧美一区二区久久 | 99国产精品久久久 | 99精品视频在线观看免费播放 | 成人在线免费视频观看 | 日本a v在线播放 | 久久久久国产 | 欧美综合一区二区 | 成人自拍av | 午夜理伦三级理论三级在线观看 | 久久伊人影院 | 99热激情 | 国产高清视频一区 | 91精品久久久久久久久中文字幕 | 99热在线免费 | 伊人免费视频二 | 精品久久久久久久久久 | 国产欧美一区二区三区国产幕精品 | 欧美国产视频 | 午夜久久久久 | 国产精品免费在线 | 亚洲巨乳自拍在线视频 | 91视频精选 | 日本五月婷婷 |