Java Socket编程关键代码详解

开发 后端
Java Socket编程如何才能更好的进行相关代码的学习,当然我们只有不断的研究才能更好的使用。下面我们就详细的学习下。

Java Socket编程在我们编程序的时候有很广泛的应用,在应用的时候我们就会遇到不少的障碍。下面我们就看看如何才能更好的进行相关问题的学习。希望大家看完下面的代码对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;//单个CPU线程池大小  
  15. public MultiThreadServer() throws IOException{  
  16. serverSocket=new ServerSocket(port);  
  17. //Runtime的availableProcessor()方法返回当前系统的CPU数目.  
  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. //接收客户连接,只要客户进行了连接,就会触发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多线程操作相关问题总结
  2. 如何理解Java多线程编程的相关问题
  3. Java多线程与传统线程之间的区别
  4. Java多线程支持如何才能解决接口问题
  5. Java多线程服务器如何应对相关链接问题
责任编辑:张浩 来源: IT168
相关推荐

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

2012-03-19 10:55:27

JavaSocket

2009-06-11 10:00:05

Java Socket

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开发So

2012-03-19 10:41:15

JavaSocket

2015-09-08 10:06:18

JavaSocket编程通信

2013-03-27 13:26:04

Android开发Socket

2015-03-10 13:43:00

JavaSocket编程编程

2010-03-22 13:25:47

Java Socket
点赞
收藏

51CTO技术栈公众号