Java Socket编程关键代码详解
2012-12-03 22:21
337 查看
Java Socket编程如何才能更好的进行相关代码的学习,当然我们只有不断的研究才能更好的使用。下面我们就详细的学习下。
Java Socket编程在我们编程序的时候有很广泛的应用,在应用的时候我们就会遇到不少的障碍。下面我们就看看如何才能更好的进行相关问题的学习。希望大家看完下面的代码对JavaSocket编程有所收获。
以上就是对Java Socket编程的相关代码介绍。
转载地址:http://developer.51cto.com/art/201003/189354.htm
Java Socket编程在我们编程序的时候有很广泛的应用,在应用的时候我们就会遇到不少的障碍。下面我们就看看如何才能更好的进行相关问题的学习。希望大家看完下面的代码对JavaSocket编程有所收获。
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(); } } } }
以上就是对Java Socket编程的相关代码介绍。
转载地址:http://developer.51cto.com/art/201003/189354.htm
相关文章推荐
- SLIC超像素分割详解(二):关键代码分析
- android的两种网络请求方式关键代码详解
- libsvm 学习笔记(四)--- grid.py 关键代码详解
- Android HttpClient实例详解--用代码说话
- 瞰视图代码详解
- (asp.net)PayPal案例的关键源码代码__PayPal集成_API接口
- PCA 降维算法详解 以及代码示例
- 第107讲:Akka中的Future使用代码实战详解学习笔记
- jQuery实现区域打印功能代码详解
- Java同步函数代码详解
- iOS 常用到的关键代码
- 详解ASP.NET中Identity的身份验证代码
- C#关机代码实例详解
- LZ77压缩算法编码原理详解(结合图片和简单代码)
- Scala中路径依赖代码实战详解之Scala学习笔记-42
- AJAX请求和响应代码详解
- Console命令详解,让调试js代码变得更简单
- 安卓项目五子棋代码详解(一)
- Java多线程之线程通信生产者消费者模式及等待唤醒机制代码详解
- mysql 错误代码详解(超全)