国产探花免费观看_亚洲丰满少妇自慰呻吟_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程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 崇义县| 澄迈县| 昌邑市| 九寨沟县| 安溪县| 平南县| 黎城县| 绥阳县| 凤凰县| 行唐县| 崇仁县| 龙州县| 离岛区| 芦溪县| 营山县| 永胜县| 锡林郭勒盟| 吴旗县| 晋城| 普定县| 洛阳市| 剑河县| 洱源县| 三河市| 明溪县| 东丰县| 马边| 咸丰县| 正镶白旗| 吴忠市| 滁州市| 韶山市| 寿阳县| 临沂市| 加查县| 洛南县| 威海市| 铁力市| 阳高县| 大埔区| 青阳县|