自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Java多線程服務(wù)器如何進(jìn)行組建和修改

開發(fā) 后端
Java多線程服務(wù)器如何才能更好的進(jìn)行相關(guān)服務(wù)?這個(gè)就需要廣大的程序員不斷的進(jìn)行相關(guān)知識(shí)的學(xué)習(xí),希望大家有所收獲。

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

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

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


借用 RemoteFileServer 的 handleConnection() 方法的代碼實(shí)現(xiàn) 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多線程服務(wù)器相關(guān)使用的介紹。希望大家有所收獲。

【編輯推薦】

  1. Java多線程程序如何掌握基本語法
  2. Java多線程同步具體實(shí)例講解
  3. Java多線程語句具體分類的詳細(xì)介紹
  4. Java多線程優(yōu)化之偏向鎖原理分析
  5. Java多線程初學(xué)者指南系列教程
責(zé)任編輯:張浩 來源: IT168網(wǎng)站
相關(guān)推薦

2010-08-03 15:31:42

Ubuntu NFS服

2011-07-25 10:48:34

服務(wù)器虛擬服務(wù)器

2010-03-19 14:01:55

Java Socket

2010-03-16 17:39:36

Java多線程鎖

2010-03-17 18:21:54

Java多線程靜態(tài)數(shù)據(jù)

2011-07-14 14:58:19

網(wǎng)絡(luò)服務(wù)器配置服務(wù)器

2009-08-21 16:13:45

代理服務(wù)器設(shè)置迅雷

2010-03-18 19:39:44

Java Socket

2010-03-16 10:50:21

Java多線程服務(wù)器

2010-03-16 10:32:36

Java線程撥號器

2018-07-20 10:12:27

租用服務(wù)器速度測試

2017-08-04 10:47:20

2011-06-29 10:06:23

Linux服務(wù)器優(yōu)化

2011-07-04 10:20:25

服務(wù)器云時(shí)代

2010-06-02 18:51:35

搭建SVN服務(wù)器

2011-10-26 11:21:47

服務(wù)器虛擬化存儲(chǔ)管理

2012-12-03 14:21:02

服務(wù)器群集

2011-08-02 16:46:33

FoxmailServ郵件服務(wù)器域管理

2009-02-18 10:41:16

多線程服務(wù)器穩(wěn)定Java

2010-03-17 17:54:25

java Socket
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號