【游戏服务端开服 一 】 单线程可以处理一对一的请求
2016-03-30 19:56
381 查看
Java 学习多线程程序,一般要经历的几个阶段
1.单线程可以处理一对一的请求
View Code
1.单线程可以处理一对一的请求
package rodking.server; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.PrintWriter; import java.net.ServerSocket; import java.net.Socket; /** * @author rodking * @des 单线程可以处理一对一的请求,当如果有要处理多个客户端连接时不适用 * (类似一种排队机制) * (问答模式,单通道通信) 阻塞通信 */ public class OneThreadServer { private ServerSocket server; private Socket socket = null; public void serverStart() { BufferedReader is = null; PrintWriter os = null; try { // 启动一个服务端 server = new ServerSocket(9000); System.out.println("[ S ]: game server start port 9000."); // 监听一个客户端连接 socket = server.accept(); String line; // 获取客户端的,读写流 is = new BufferedReader(new InputStreamReader(socket.getInputStream())); os = new PrintWriter(socket.getOutputStream()); line = is.readLine(); System.out.println("[ S ]: one client in server"); // 单线程处理读取 while (!line.equals("bye")) { System.out.println("Server:" + line); System.out.println("Client:" + line); // TODO 这里可以做协议派发 (封装 os) os.println("[ received ] "+ line); os.flush(); line = is.readLine(); } System.out.println("[ S ]: game server close."); os.close(); is.close(); socket.close(); server.close(); } catch (IOException e) { e.printStackTrace(); } } public static void main(String[] args) { OneThreadServer server = new OneThreadServer(); server.serverStart(); } }
View Code
相关文章推荐
- swift基础
- java-入门:模拟网络购物支付系统
- IOS学习之——彩票应用开发
- java学习第三天
- 有线时不需要hosts直接上谷歌
- 25 API-GUI(事件监听机制,适配器模式),Netbeans的概述和使用(模拟登陆注册GUI版)
- Mybatis 配置实体类的别名
- 合并有序链表
- 初学用HashMap输出
- mvc模式 学生管理系统
- 英伟达硬件加速解码器在 FFMPEG 中的使用
- 第4周项目5-用递归方法求解2
- 安装Bcache中遇到的问题记录
- 存储过程和函数的区别
- android 图像渲染(Shader)
- 南阳题目206-矩形的个数
- css3 字体旋转
- [linux basic基础]----套接字
- [置顶] 视频转gif图片格式-好用的软件
- LevelDb