JavaSocket编程关键代码是什么

本篇内容介绍了“Java Socket编程关键代码是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

我们提供的服务有:成都网站设计、做网站、微信公众号开发、网站优化、网站认证、永定ssl等。为1000+企事业单位解决了网站和推广的问题。提供周到的售前咨询和贴心的售后服务,是有科学管理、有技术的永定网站制作公司

  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编程关键代码是什么”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注创新互联网站,小编将为大家输出更多高质量的实用文章!


名称栏目:JavaSocket编程关键代码是什么
新闻来源:http://myzitong.com/article/jegjjp.html