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

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

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
Java Socket編程關鍵代碼詳解

Java Socket編程在我們編程序的時候有很廣泛的應用,在應用的時候我們就會遇到不少的障礙。下面我們就看看如何才能更好的進行相關問題的學習。希望大家看完下面的代碼對Java Socket編程有所收獲。

讓客戶滿意是我們工作的目標,不斷超越客戶的期望值來自于我們對這個行業(yè)的熱愛。我們立志把好的技術通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領域值得信任、有價值的長期合作伙伴,公司提供的服務項目有:國際域名空間、雅安服務器托管、營銷軟件、網(wǎng)站建設、橫縣網(wǎng)站維護、網(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;//單個CPU線程池大小  
  15. public MultiThreadServer() throws IOException{  
  16. serverSocket=new ServerSocket(port);  
  17. //Runtime的availableProcessor()方法返回當前系統(tǒng)的CPU數(shù)目.  
  18. executorService=Executors.newFixedThreadPool
    (Runtime.getRuntime().availableProcessors()*POOL_SIZE);  
  19. System.out.println("服務器啟動");  
  20. }  
  21. public void service(){  
  22. while(true){  
  23. Socket socket=null;  
  24. try {  
  25. //接收客戶連接,只要客戶進行了連接,就會觸發(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. }  

以上就是對Java Socket編程的相關代碼介紹。

【編輯推薦】

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

新聞名稱:Java Socket編程關鍵代碼詳解
鏈接分享:http://www.dlmjj.cn/article/dpghosd.html