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多线程服务器如何应对相关链接问题

网站题目:Java Socket编程关键代码详解
网页地址:http://www.shufengxianlan.com/qtweb/news17/248317.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联