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

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

開發(fā) 后端
Java Socket編程如何才能更好的進(jìn)行相關(guān)代碼的學(xué)習(xí),當(dāng)然我們只有不斷的研究才能更好的使用。下面我們就詳細(xì)的學(xué)習(xí)下。

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

  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)鏈接問題
責(zé)任編輯:張浩 來源: IT168
相關(guān)推薦

2010-03-19 15:02:50

Java Socket

2015-07-27 09:53:13

PHP編程過程

2010-03-19 15:01:23

Java Socket

2010-03-19 16:51:53

Java Socket

2010-03-18 16:49:43

Java Socket

2012-03-19 11:41:30

JavaSocket

2019-02-12 15:04:09

2010-03-22 10:42:37

Java Socket

2016-11-04 21:37:16

PythonSocket

2009-06-11 10:00:05

Java Socket

2012-03-19 10:55:27

JavaSocket

2009-02-04 09:45:05

Java SocketSocket APIJava編程

2010-03-03 16:19:29

Python Sock

2024-02-26 00:00:00

GoSocket編程

2013-03-26 12:46:23

Android開發(fā)So

2013-03-27 13:26:04

Android開發(fā)Socket

2015-09-08 10:06:18

JavaSocket編程通信

2012-03-19 10:41:15

JavaSocket

2015-03-10 13:43:00

JavaSocket編程編程

2010-03-19 14:42:29

Java Socket
點(diǎn)贊
收藏

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