日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關咨詢
選擇下列產(chǎn)品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關閉右側工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
Java多線程服務器如何進行組建和修改

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

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

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

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


新聞名稱:Java多線程服務器如何進行組建和修改
鏈接分享:http://www.dlmjj.cn/article/cceesjc.html