Hadoop源码分析2: NIO Socket 分析
来源:互联网 发布:mac 听写 插件 编辑:程序博客网 时间:2024/06/05 04:16
1.客户端
static class Hanlder extendsThread { privateSocket socket;
publicHanlder(Socket socket) { this.socket= socket; }
@Override public void run(){ try { InputStream in = socket.getInputStream(); BufferedReader brIn = new BufferedReader(newInputStreamReader(in)); OutputStream out =socket.getOutputStream(); out.write(("login: " + new Date() + "\r\n").getBytes()); while (true) { //线程在此阻塞,直到读到客户端新的数据 String cmd =brIn.readLine(); System.out.println("receive:" + cmd + "\r\n"); out.write(("return: " + cmd.toUpperCase() +"\r\n").getBytes()); if("bye".equalsIgnoreCase(cmd)) { out.write(("logout: " + newDate() + "\r\n").getBytes()); break; } } socket.close(); }catch (IOException e) { e.printStackTrace(); } } }
publicstatic void main(String[] args) { try { ServerSocket serverSocket = newServerSocket(7777); while (true) { //线程在此阻塞,直到收到新的连接 Socket socket =serverSocket.accept(); //对每个连接使用一个线程进行处理 new Hanlder(socket).start(); } } catch(IOException e) { e.printStackTrace(); } }
公司产品的客户端的使用阻塞式的Socket,并没有使用NIO,在Hadoop中遇到再议。
2.服务器端
2.1 阻塞式
例子程序
public class BIOServer {
}
2.2 非阻塞式
0 0
- Hadoop源码分析2: NIO Socket 分析
- NIO Selector源码分析
- Hadoop源码分析-HDFS
- Hadoop RPC源码分析
- hadoop datanode源码分析
- hadoop datanode源码分析
- Hadoop RPC源码分析
- hadoop datanode源码分析
- hadoop 源码分析一
- Hadoop源码分析_DatanodeDescriptor
- Hadoop源码分析_DatanodeInfo
- hadoop源码分析 jobsplit
- Hadoop源码分析
- Hadoop TextInputFormat源码分析
- Hadoop InputFormat源码分析
- Hadoop源码分析-Text
- Hadoop源码分析-Context
- Hadoop源码分析1
- 《分布式系统原理与范型》习题答案 4.命名
- 《分布式系统原理与范型》习题答案 5.同步
- 《分布式系统原理与范型》习题答案 6.一致性和复制
- 正则表达式划分CSV
- Hadoop源码分析1: 客户端提交JOB
- Hadoop源码分析2: NIO Socket 分析
- Hadoop源码分析3: 序列化
- tortoisegit分支使用
- Hadoop源码分析4: 动态代理
- Hadoop源码分析5: RPC基本线程
- Hadoop源码分析6: RPC基本线程
- Hadoop源码分析6: Buffer 细节
- 联通让“打110”,我该怎么办?
- Hadoop源码分析7: IPC流程(1) 主要类