package org.fanhongtao.net.frame.nio; import java.net.InetSocketAddress; import java.net.Socket; import java.nio.channels.SelectionKey; import java.nio.channels.SocketChannel; import org.fanhongtao.net.frame.LoopedData; import org.fanhongtao.net.frame.MsgDirection; import org.fanhongtao.net.frame.handler.IHandler; /** * @author Fan Hongtao * @created 2010-10-4 */ public class Connection { private SelectionKey key; private InetSocketAddress localAddress; private InetSocketAddress remoteAddress; private LoopedData buffer; private IHandler handler; private MsgDirection receiveDirection; private MsgDirection sendDirection; public Connection(SelectionKey key, IHandler handler) { this.key = key; this.handler = handler; SocketChannel sc = (SocketChannel)key.channel(); Socket socket = sc.socket(); this.localAddress = (InetSocketAddress)socket.getLocalSocketAddress(); this.remoteAddress = (InetSocketAddress)socket.getRemoteSocketAddress(); buffer = new LoopedData(); } public SelectionKey getKey() { return key; } public void setKey(SelectionKey key) { this.key = key; } public InetSocketAddress getLocalAddress() { return localAddress; } public InetSocketAddress getRemoteAddress() { return remoteAddress; } public LoopedData getBuffer() { return buffer; } public IHandler getHandler() { return handler; } public MsgDirection getReceiveDirection() { return receiveDirection; } public MsgDirection getSendDirection() { return sendDirection; } }