Java核心技术II:为多个客户端服务
2017-04-21 19:49
363 查看
上文的代码简单实现了一个服务器程序,但只能为一个服务端提供服务,也就是说同时只能建立一个连接。用线程的方法可实现为多个客户端服务。
import java.io.InputStream; import java.io.OutputStream; import java.io.PrintWriter; import java.net.ServerSocket; import java.net.Socket; import java.util.Scanner; /** * */ /** * @author Administrator *新浪微博:ouc大飞 */ public class ThreadedEchoServer { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub try { int i=0; ServerSocket serverSocket=new ServerSocket(8189); while (true) { Socket incoming=serverSocket.accept(); System.out.println("Spawning"+i); Runnable runnable=new ThreadedEchoHandler(incoming); Thread t=new Thread(runnable); t.start(); i++; } } catch (Exception e) { // TODO: handle exception } } } class ThreadedEchoHandler implements Runnable{ public ThreadedEchoHandler(Socket i){ incoming=i; } public void run() { try { try { InputStream inputStream=incoming.getInputStream(); OutputStream outputStream=incoming.getOutputStream(); Scanner in=new Scanner(inputStream); PrintWriter out=new PrintWriter(outputStream,true); out.println("hello!enter BYE to exit"); boolean done=false; while (!done&&in.hasNext()) { String line = in.nextLine(); out.println("Echo:"+line); if(line.trim().equals("BYE")) done=true; } } catch (Exception e) { // TODO: handle exception } finally { incoming.close(); } } catch (Exception e) { // TODO: handle exception e.printStackTrace(); } } private Socket incoming; }
相关文章推荐
- Java核心技术 卷II 线程
- 《Java核心技术 卷II 高级特性(原书第9版)》
- Java核心技术II:实现服务器编程ServerSocket
- Java核心技术 卷II 高级特性 原书第9版pdf
- 读《Java 核心技术 卷II》高级特性(原书第9版)
- Java核心技术II:ZiP压缩文档
- Java核心技术II:以文本格式存储对象
- Java 核心技术 卷II (4章)--数据库编程
- java技术核心卷II书目
- Java核心技术II:解析XML文档
- java核心技术II:随机访问文件
- Java核心技术II:对象流与序列化
- java核心技术II:高级特性(第8版译文)下载链接--含参考源码
- JAVA基础【6.2】《Java核心技术1》接口与内部类-对象克隆
- 基于即时通信和LBS技术的位置感知服务(三):搭建Openfire服务器+测试2款IM客户端
- java核心技术-接口和内部类(1)
- Java核心技术点之集合框架
- Java核心技术之代理
- 《JAVA 核心技术 基础知识》 内部类 笔记
- JavaWeb核心技术学习笔记(三)——JavaEE体系概况