Java Socket编程关键代码详解

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

Java Socket编程在我们编程序的时候有很广泛的应用,在应用的时候我们就会遇到不少的障碍。下面我们就看看如何才能更好的进行相关问题的学习。希望大家看完下面的代码对Java Socket编程有所收获。

package sterning;  
import java.io.BufferedReader;  
import java.io.IOException;  
import java.io.InputStream;  
import java.io.InputStreamReader;  
import java.io.OutputStream;  
import java.io.PrintWriter;  
import java.net.*;  
import java.util.concurrent.*;  
public class MultiThreadServer {  
private int port=8821;  
private ServerSocket serverSocket;  
private ExecutorService executorService;//线程池  
private final int POOL_SIZE=10;//单个CPU线程池大小  
public MultiThreadServer() throws IOException{  
serverSocket=new ServerSocket(port);  
//Runtime的availableProcessor()方法返回当前系统的CPU数目.  
executorService=Executors.newFixedThreadPool
(Runtime.getRuntime().availableProcessors()*POOL_SIZE);  
System.out.println("服务器启动");   }   public void service(){   while(true){   Socket socket=null;   try {   //接收客户连接,只要客户进行了连接,就会触发accept();从而建立连接   socket=serverSocket.accept();   executorService.execute(new Handler(socket));   } catch (Exception e) {   e.printStackTrace();   }   }   }   public static void main(String[] args) throws IOException {   new MultiThreadServer().service();   }   }   class Handler implements Runnable{   private Socket socket;   public Handler(Socket socket){   this.socket=socket;   }   private PrintWriter getWriter(Socket socket) throws 
IOException{  
OutputStream socketsocketOut=socket.getOutputStream();   return new PrintWriter(socketOut,true);   }   private BufferedReader getReader(Socket socket) throws 
IOException{  
InputStream socketsocketIn=socket.getInputStream();   return new BufferedReader(new InputStreamReader
(socketIn));  
}   public String echo(String msg){   return "echo:"+msg;   }   public void run(){   try {   System.out.println("New connection accepted "+
socket.getInetAddress()+":"+socket.getPort());  
BufferedReader br=getReader(socket);   PrintWriter pw=getWriter(socket);   String msg=null;   while((msg=br.readLine())!=null){   System.out.println(msg);   pw.println(echo(msg));   if(msg.equals("bye"))   break;   }   } catch (IOException e) {   e.printStackTrace();   }finally{   try {   if(socket!=null)   socket.close();   } catch (IOException e) {   e.printStackTrace();   }   }   }  
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.
  • 38.
  • 39.
  • 40.
  • 41.
  • 42.
  • 43.
  • 44.
  • 45.
  • 46.
  • 47.
  • 48.
  • 49.
  • 50.
  • 51.
  • 52.
  • 53.
  • 54.
  • 55.
  • 56.
  • 57.
  • 58.
  • 59.
  • 60.
  • 61.
  • 62.
  • 63.
  • 64.
  • 65.
  • 66.
  • 67.
  • 68.
  • 69.
  • 70.
  • 71.
  • 72.
  • 73.
  • 74.
  • 75.
  • 76.
  • 77.
  • 78.
  • 79.
  • 80.
  • 81.

以上就是对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

2010-03-03 16:19:29

Python Sock

2009-02-04 09:45:05

Java SocketSocket APIJava编程

2013-03-26 12:46:23

Android开发So

2024-02-26 00:00:00

GoSocket编程

2013-03-27 13:26:04

Android开发Socket

2012-03-19 10:41:15

JavaSocket

2015-09-08 10:06:18

JavaSocket编程通信

2015-03-10 13:43:00

JavaSocket编程编程

2010-03-19 14:42:29

Java Socket
点赞
收藏

51CTO技术栈公众号