程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> java nio基本應用示例

java nio基本應用示例

編輯:關於JAVA

java nio基本應用示例。本站提示廣大學習愛好者:(java nio基本應用示例)文章只能為提供參考,不一定能成為您想要的結果。以下是java nio基本應用示例正文


本文實例講述了Python簡略完成子網掩碼轉換的辦法。分享給年夜家供年夜家參考,詳細以下:

這裡完成將子網掩碼長度轉換為詳細的子網掩碼地址:

def exchange_maskint(mask_int):
  bin_arr = ['0' for i in range(32)]
  for i in range(mask_int):
    bin_arr[i] = '1'
  tmpmask = [''.join(bin_arr[i * 8:i * 8 + 8]) for i in range(4)]
  tmpmask = [str(int(tmpstr, 2)) for tmpstr in tmpmask]
  return '.'.join(tmpmask)
if __name__ == '__main__':
  print exchange_maskint(24)

願望本文所述對年夜家Python法式設計有所贊助。

�冊事宜到selector,當事宜知足前提後觸刊行為。
年夜致流程為:
java nio供給一個selector,這個相似一個不雅察者,將須要探知的socketchannel注冊到selector上
接著我們做其余工作,當有事宜產生時刻,selector會告訴我們,傳回一組selectionKey,我們讀取這些key就會取得到我們方才注冊過的socketchannel,然後從這個channel讀取數據、處置營業邏輯。
selector外部道理,采取輪詢的方法,對所注冊的channel停止遍歷,斷定channel所注冊的事宜能否產生。
代碼舉例為:


// 1.創立一個selector對象
Selector selector = Selector.open();
// 2.樹立channel對象,並綁定在8080端口上
ServerSocketChannel ssc = ServerSocketChannel.open();
InetSocketAddress address = new InetSocketAddress(InetAddress.getLocalHost(),8080);
ssc.socket().bind(address);
// 3.將channel設定為非壅塞方法
ssc.configureBlocking(false);
// 向selector注冊channel和我們感興致的事宜
SelectionKey skey = ssc.register(selector,SelectionKey.OP_ACCEPT);// 這邊注冊了accept,辦事器接收到client銜接事宜
// 4、簡略模仿下輪詢進程
while(true)
{
  // selector經由過程select辦法,告訴我們感興致的事宜產生了
  int nKeys = selector.select();
  // 當nKeys>0表現事宜產生了
  // 這時候候可以經由過程selector.selectedKeys();辦法拿到key聚集
  Set selectKeys = selector.selectedKeys();
  // 5、迭代遍歷keys對象,分離做適配營業邏輯處置
  // 好比:
  s = (SelectionKey)(selectKeys.iterator()).next();
  if(s.isAcceptable())// 斷定為注冊的OP_ACCEPT事宜
  {
    // 從channel中獲得我們適才注冊的channel
    Socket socket = ((ServerSocketChannel)s.channel()).accept().socket();
    SocketChannel sc = socket.getChannel();
    // 設置為非壅塞
    sc.configureBlocking(false);
  // 注冊read/write事宜
    sc.register(selector, SelectionKey.OP_READ |SelectionKey.OP_WRITE);
  }
}
// 上邊就是簡略的java nio演示的偽代碼
// 這時候候,client端可以telnet 主機名 端標語 銜接到server辦事器。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved