国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Java > 正文

Java中channel用法總結

2019-11-26 15:09:42
字體:
來源:轉載
供稿:網友

本文實例總結了Java中channel用法。分享給大家供大家參考。具體分析如下:

1.Channel接口的定義:

public interface Channel{  public boolean isOpen( );  public void close( ) throws IOException;}

2.Channel的常見類型:

FileChannel, SocketChannel, ServerSocketChannel, and DatagramChannel;
FileChannel通過RandomAccessFile, FileInputStream, FileOutputStream的getChannel()來初始化。

SocketChannel sc = SocketChannel.open();sc.connect (new InetSocketAddress ("somehost", someport));ServerSocketChannel ssc = ServerSocketChannel.open( );ssc.socket().bind (new InetSocketAddress (somelocalport));DatagramChannel dc = DatagramChannel.open();

3.Scatter/Gather,必須使用ByteBuffer.allocateDirect(100)

public interface ScatteringByteChannel extends ReadableByteChannel {  public long read (ByteBuffer [] dsts) throws IOException;  public long read (ByteBuffer [] dsts, int offset, int length) throws IOException;}public interface GatheringByteChannel extends WritableByteChannel {  public long write(ByteBuffer[] srcs) throws IOException;  public long write(ByteBuffer[] srcs, int offset, int length) throws IOException;}

4.file lock是和file相關,而不是channel。可以對進程有效,而不是線程。可以通過內存映射文件(memory-mapped file)來實現線程同步

5.buffer = fileChannel.map (FileChannel.MapMode.READ_ONLY, 100, 200);

6.MappedByteBuffer are direct. load( )將整個文件加載到內存(改方法不能保證完成)。force( )將數據flush到硬盤。

7.未綁定端口的DatagramChannel系統會自動分配端口。DatagramChannel的connect(),將保證只接受指定源地址的數據包。這時候,可以使用普通的read和write方法,包括Scatter/Gather

希望本文所述對大家的java程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 建瓯市| 云安县| 荔浦县| 阿勒泰市| 克拉玛依市| 得荣县| 彝良县| 扶风县| 盈江县| 镇巴县| 弋阳县| 洛川县| 岢岚县| 天祝| 日照市| 新和县| 江永县| 瑞丽市| 泽普县| 咸阳市| 宣威市| 广元市| 长寿区| 桐柏县| 当阳市| 兖州市| 汉源县| 永泰县| 博野县| 曲靖市| 鸡东县| 得荣县| 扎兰屯市| 汉源县| 巴里| 翁源县| 江安县| 从化市| 湘潭市| 图们市| 吕梁市|