3.12 mina 간단 한 tcp 사용

http<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">://blog.csdn.net/ljx8928358/article/details/7759024</span>

http://blog.csdn.net/cnicys/article/details/8535485
session 은 mina 프레임 의 심장 과 같 습 니 다. 모든 client 의 연결 이 server 에 도착 하면 새로운 session 을 만 들 고 client 연결 이 끊 길 때 까지 메모리 유닛 에 저장 합 니 다.
session 은 연결 과 관련 된 지속 적 인 정 보 를 저장 하 는 데 자주 사 용 됩 니 다. 이 정 보 는 server 에서 처리 할 때 매우 유용 합 니 다. 수명 주 기 는 전체 세 션 입 니 다.
1. session 의 상태
일반적으로 미 나의 세 션 은 다음 과 같은 몇 가지 상태 가 있다.
1. Connected: client 가 server 에 연결 한 후에 session 이 만 들 어 졌 고 이 session 은 유효 하고 사용 가능 합 니 다.
2、Idle   : 이 때 session 은 어떠한 요청 도 처리 하지 않 았 으 며, 이 시간 은 당신 이 설정 한 session 이 빈 상태 로 들 어 가 는 시간 을 초과 하 였 으 며, idle 은 세 가지 상태 로 세분 화 되 었 습 니 다.
  (1) idle for read  읽 기 채널 설정 시간 초과
  (2) idle for write 쓰기 채널 설정 의 남 은 시간 초과
  (3) idle for both  읽 기와 쓰기 채널 이 모두 남 은 시간 을 초과 하 였 습 니 다.
3. Closing: 이 때 session 이 닫 히 지만 완전히 닫 히 지 않 았 습 니 다 (처리 되 지 않 은 메시지 에 대해 flushed 작업)
4. Closed: session 이 완전히 닫 혔 고 이 상 태 는 거 스 를 수 없습니다.
android 클 라 이언 트 의 사용:
//   CPU   
			connector = new NioSocketConnector(Runtime.getRuntime().availableProcessors() + 1);
			//        , true         ,             
			connector.getSessionConfig().setTcpNoDelay(true);
			//            
			connector.getSessionConfig().setReceiveBufferSize(Global.SOCKET.READ_BUFFER_SIZE);
			//            
			connector.getSessionConfig().setSendBufferSize(Global.SOCKET.READ_BUFFER_SIZE);
			 //       10                
			connector.getSessionConfig().setIdleTime(IdleStatus.BOTH_IDLE, 130);
			//     
			connector.getFilterChain().addLast(
					"codec",
					new ProtocolCodecFilter(new SimpleEncoder(),
							new SimpleDecoder()));
			//      ,       
			connector.setHandler(new ServerSessionHandler());
			//  ip  
			connector.setDefaultRemoteAddress(new InetSocketAddress(ip, port));
			ConnectFuture future = connector.connect();

연결 처리:
class ServerSessionHandler extends IoHandlerAdapter { }
처리 해석:
public class SimpleDecoder extends ProtocolDecoderAdapter {}
public class SimpleEncoder implements ProtocolEncoder {}
데이터 보 내기:
public void encode(IoSession session, Object obj, ProtocolEncoderOutput out)throws Exception { 
out.write("hello!");
}
혹시
IoSession session
session.write(param);

좋은 웹페이지 즐겨찾기