sblig

          BlogJava 首頁 新隨筆 聯系 聚合 管理
            10 Posts :: 0 Stories :: 0 Comments :: 0 Trackbacks

          服務器端:
          ????

          // 創建一個非阻塞的server端socket ,用NIO
          		SocketAcceptor acceptor = new NioSocketAcceptor();
          
          		// 創建接收數據的過濾器
          		DefaultIoFilterChainBuilder chain = acceptor.getFilterChain();
          
          		// 設定這個過濾器一行一行(\r\n)的讀數據
          		chain.addLast("myChin", new ProtocolCodecFilter(
          				new TextLineCodecFactory()));
          
          		//設定服務器端的消息處理器,一個SamplMinaServerHandler對象(自己實現)繼承IoHandlerAdapter
          		acceptor.setHandler(new IoHandlerAdapter(){
          			//當一個客端端連結進入時
          			@Override
          			public void sessionOpened(IoSession session) throws Exception {
          				// TODO Auto-generated method stub
          				System.out.println("incomming client : "+session.getRemoteAddress());
          			}
          			
          			//當一個客戶端關閉時
          			@Override
          			public void sessionClosed(IoSession session) throws Exception {
          				// TODO Auto-generated method stub
          				System.out.println("on client disconnect : "+session.getRemoteAddress());
          			}
          
          			//當客戶端發送的消息到達時
          			@Override
          			public void messageReceived(IoSession session, Object message)
          					throws Exception {
          				// TODO Auto-generated method stub
          				String s =  (String)message;
          				System.out.println("收到客戶端發來的消息:"+s);
          				//測試將消息回給客戶端
          				session.write(s+count);
          				count ++;
          			}
          			private int count =0;
          		});
          		//端口號
          		int bindPort= 9988;
          		
          		//綁定打開,啟動服務器
          		acceptor.bind(new InetSocketAddress(bindPort));
          		
          		System.out.println("Mina Server is listing on:="+bindPort);

          ??
          ???
          ???
          ??客戶端:
          ???

          // create TCP/IP connector
          		NioSocketConnector connector = new NioSocketConnector();
          
          		// 創建接收數據的過濾器
          		DefaultIoFilterChainBuilder chain = connector.getFilterChain();
          
          		// 設定這個過濾器將一行一行(/r/n)的讀取數據
          		chain.addLast("myChin", new ProtocolCodecFilter(
          				new TextLineCodecFactory()));
          
          		// 設定服務器端的消息處理器:一個SamplMinaServerHandler對象,
          		connector.setHandler(new IoHandlerAdapter(){
          			@Override
          			public void messageReceived(IoSession session, Object message)
          					throws Exception {
          				// 我們己設定了服務器解析消息的規則是一行一行讀取,這里就可轉為String:
          				String s = (String) message;
          				// Write the received data back to remote peer
          				System.out.println("服務器發來的收到消息: " + s);
          				// 測試將消息回送給客戶端
          				session.write(s);
          			}
          
          			@Override
          			public void sessionClosed(IoSession session) throws Exception {
          				// TODO Auto-generated method stub
          				System.out.println("one Clinet Disconnect !");
          			}
          
          			@Override
          			public void sessionOpened(IoSession session) throws Exception {
          				// TODO Auto-generated method stub
          				System.out.println("incomming client  " + session.getRemoteAddress());
          				session.write("我來啦........");
          			}
          		});
          		
          		// Set connect timeout.
          		connector.setConnectTimeout(30);
          		
          		// 連結到服務器:
          		ConnectFuture cf = connector.connect(new InetSocketAddress("localhost",
          				9988));
          		
          		// Wait for the connection attempt to be finished.
          		cf.awaitUninterruptibly();
          		cf.getSession().getCloseFuture().awaitUninterruptibly();
          		connector.dispose();

          ?
          ???
          ???
          ???????



          已有 0 人發表留言,猛擊->>這里<<-參與討論


          ITeye推薦



          posted on 2012-09-28 10:52 李凡 閱讀(196) 評論(0)  編輯  收藏

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 拉孜县| 平南县| 阿拉善右旗| 灵璧县| 尖扎县| 宁阳县| 高平市| 鄄城县| 太保市| 上栗县| 咸丰县| 民乐县| 江都市| 甘洛县| 济南市| 全椒县| 咸丰县| 开封县| 从化市| 阳曲县| 桃园县| 云南省| 常宁市| 垣曲县| 阿荣旗| 巫山县| 崇明县| 保亭| 蓬安县| 新巴尔虎右旗| 苏尼特左旗| 昭苏县| 巴楚县| 辽源市| 枣阳市| 格尔木市| 龙岩市| 沁阳市| 富民县| 黔西县| 保定市|