av激情亚洲男人的天堂国语,日韩欧美精品一中文字幕,无码av一区二区三区无码,国产又色又爽又刺激的a片,国产又色又爽又刺激的a片

Java Socket編程關(guān)鍵代碼詳解

Java Socket編程在我們編程序的時(shí)候有很廣泛的應(yīng)用,在應(yīng)用的時(shí)候我們就會(huì)遇到不少的障礙。下面我們就看看如何才能更好的進(jìn)行相關(guān)問題的學(xué)習(xí)。希望大家看完下面的代碼對(duì)Java Socket編程有所收獲。

讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來自于我們對(duì)這個(gè)行業(yè)的熱愛。我們立志把好的技術(shù)通過有效、簡(jiǎn)單的方式提供給客戶,將通過不懈努力成為客戶在信息化領(lǐng)域值得信任、有價(jià)值的長(zhǎng)期合作伙伴,公司提供的服務(wù)項(xiàng)目有:國(guó)際域名空間、雅安服務(wù)器托管、營(yíng)銷軟件、網(wǎng)站建設(shè)、橫縣網(wǎng)站維護(hù)、網(wǎng)站推廣。

 
 
 
  1. package sterning;  
  2. import java.io.BufferedReader;  
  3. import java.io.IOException;  
  4. import java.io.InputStream;  
  5. import java.io.InputStreamReader;  
  6. import java.io.OutputStream;  
  7. import java.io.PrintWriter;  
  8. import java.net.*;  
  9. import java.util.concurrent.*;  
  10. public class MultiThreadServer {  
  11. private int port=8821;  
  12. private ServerSocket serverSocket;  
  13. private ExecutorService executorService;//線程池  
  14. private final int POOL_SIZE=10;//單個(gè)CPU線程池大小  
  15. public MultiThreadServer() throws IOException{  
  16. serverSocket=new ServerSocket(port);  
  17. //Runtime的availableProcessor()方法返回當(dāng)前系統(tǒng)的CPU數(shù)目.  
  18. executorService=Executors.newFixedThreadPool
    (Runtime.getRuntime().availableProcessors()*POOL_SIZE);  
  19. System.out.println("服務(wù)器啟動(dòng)");  
  20. }  
  21. public void service(){  
  22. while(true){  
  23. Socket socket=null;  
  24. try {  
  25. //接收客戶連接,只要客戶進(jìn)行了連接,就會(huì)觸發(fā)accept();從而建立連接  
  26. socket=serverSocket.accept();  
  27. executorService.execute(new Handler(socket));  
  28. } catch (Exception e) {  
  29. e.printStackTrace();  
  30. }  
  31. }  
  32. }  
  33. public static void main(String[] args) throws IOException {  
  34. new MultiThreadServer().service();  
  35. }  
  36. }  
  37. class Handler implements Runnable{  
  38. private Socket socket;  
  39. public Handler(Socket socket){  
  40. this.socket=socket;  
  41. }  
  42. private PrintWriter getWriter(Socket socket) throws 
    IOException{  
  43. OutputStream socketsocketOut=socket.getOutputStream();  
  44. return new PrintWriter(socketOut,true);  
  45. }  
  46. private BufferedReader getReader(Socket socket) throws 
    IOException{  
  47. InputStream socketsocketIn=socket.getInputStream();  
  48. return new BufferedReader(new InputStreamReader
    (socketIn));  
  49. }  
  50. public String echo(String msg){  
  51. return "echo:"+msg;  
  52. }  
  53. public void run(){  
  54. try {  
  55. System.out.println("New connection accepted "+
    socket.getInetAddress()+":"+socket.getPort());  
  56. BufferedReader br=getReader(socket);  
  57. PrintWriter pw=getWriter(socket);  
  58. String msg=null;  
  59. while((msg=br.readLine())!=null){  
  60. System.out.println(msg);  
  61. pw.println(echo(msg));  
  62. if(msg.equals("bye"))  
  63. break;  
  64. }  
  65. } catch (IOException e) {  
  66. e.printStackTrace();  
  67. }finally{  
  68. try {  
  69. if(socket!=null)  
  70. socket.close();  
  71. } catch (IOException e) {  
  72. e.printStackTrace();  
  73. }  
  74. }  
  75. }  

以上就是對(duì)Java Socket編程的相關(guān)代碼介紹。

【編輯推薦】

  1. Java多線程操作相關(guān)問題總結(jié)
  2. 如何理解Java多線程編程的相關(guān)問題
  3. Java多線程與傳統(tǒng)線程之間的區(qū)別
  4. Java多線程支持如何才能解決接口問題
  5. Java多線程服務(wù)器如何應(yīng)對(duì)相關(guān)鏈接問題

本文題目:Java Socket編程關(guān)鍵代碼詳解
本文來源:http://uogjgqi.cn/article/dpghosd.html
掃二維碼與項(xiàng)目經(jīng)理溝通

我們?cè)谖⑿派?4小時(shí)期待你的聲音

解答本文疑問/技術(shù)咨詢/運(yùn)營(yíng)咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流