SocketChannel类简要翻译

概述

SocketChannel是一个可选中的通道,它提供了连接到socket的局部抽象流。socket()方法返回关联的socket实例。
SocketChannel被open()时,它是开放的,但没有被连接。在调用connect(SocketAddress)连接之后,它将保持连接状态直到关闭。如果连接是非阻塞的,在调用finishConnect()之后,connect(SocketAddress)被用来初始化连接。. isConnectionPending()标志线程是否阻塞。isConnected()标志是否连接。
通道的输入输出流可以在不关闭通道的情况下,独立地、异步地被中断。shutdownInput()方法被用来中断输入流,随后的读操作将返回-1,这意味着流的结束。当中断发生时,如果线程阻塞在读操作时,读操作将安全地停止。当中断发生时,如果线程阻塞在写操作时,写操作将停止并抛出异常。
SocketChannel是线程安全的,在任意时刻不会超过一个线程同时读写。

公共方法

  • public abstract boolean connect (SocketAddress address)
    连接channel’s socket到远程地址。
    如果通道是阻塞的,这个方法将延迟,直到连接结束或者I/O错误发生。如果通道没有阻塞,这个方法将在连接完成时返回ture。
  • public abstract boolean finishConnect ()
    完成connect(SocketAddress)的进程。
  • public abstract boolean isConnected ()
    判断 channel’s socket是否连接。
  • public abstract boolean isConnectionPending ()
    判断channel’s socket是否仍在尝试连接。
  • public static SocketChannel open ()
    创建一个放开但不连接的socket channel。
  • public static SocketChannel open (SocketAddress address)
    创建一个连接到address的socket channel。
  • public abstract int read (ByteBuffer target)
    从socket channel读取bytes到指定的buffer。
    当这个方法被调用时,可以读取的最大字节数量是buffer剩余的空间。bytes将被复制到buffer的当前位置。
  • public abstract long read (ByteBuffer[] targets, int offset, int length)
    从socket channel读取bytes到指定的buffer数组。这个方法将尝试从指定的偏移位置(offset)读取指定长度(length)的剩余bytes。返回值是实际读取的字节数。
  • public abstract Socket socket ()
    返回被分配给这个channel的socket,它不能声明任何没有在Socket类中声明的公共方法。
  • public final synchronized long write (ByteBuffer[] sources)
    从指定的byte buffers向socket channel写byte。
  • public abstract long write (ByteBuffer[] sources, int offset, int length)
    。。。。。。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值