快速业务通道

Java网络编程之传输控制协议 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-22

在较低的层次,套接字是由套接字产生组件(socket factory)产生的,它 是一个负责建立适当的套接字实现的特殊的类。在正常环境下,将会产生标准的 java.net.Socket,但是在一些特殊的情形中,例如使用自定义套接字的特殊的 网络环境(例如通过使用特殊的代理服务器穿透防火墙),套接字产生组件实际 上可能返回一个套接字子类(subclass)。对于错综复杂的Java网络编程比较熟 悉,明确为了建立自定义套接字和套接字产生组件的有经验的开发者可以去了解 套接字产生组件的细节信息。对于这个主题的更多信息,你可以查看 java.net.SocketFactory和java.net.SocketImplFactory类的Java API文档。

2、使用套接字

套接字可以执行大量的事务,例如读取信息、发送数据、关闭连接、设置套 接字选项等等。此外,下面提供的方法可以获取套接字的信息(例如地址和端口 位置):

方法

· void close()产生java.io.IOException异常--关闭套接字连接。关闭连 接可能允许也可能不允许继续发送剩余的数据,这依赖于SO_LINGER套接字选项 的设定。我们建议开发者在关闭套接字连接之前清除所有的输出流。

· InetAddress getInetAddress()--返回连接到套接字的远程主机的地址。

· InputStream getInputStream()产生java.io.IOException异常--返回一 个输入流,它从该套接字连接到的应用程序读取信息。

· OutputStream getOutputStream()产生java.io.IOException异常--返回 一个输出流,它向套接字连接到的应用程序写入信息。

· boolean getKeepAlive()产生java.net.SocketException异常--返回 SO_KEEPALIVE套接字选项的状态。

· InetAddress getLocalAddress()--返回与套接字关联的本地地址(在多 地址计算机中有用)。

· int getLocalPort()--返回该套接字绑定在本地计算机上的端口号。

· int getPort()--返回套接字连接到的远程服务的端口号。

· int getReceiveBufferSize()产生java.net.SocketException异常--返回 套接字使用的接收缓冲区大小,由SO_RCVBUF套接字选项的值决定。

· int getSendBufferSize()产生java.net.SocketException异常--返回套 接字使用的发送缓冲区大小,由SO_SNDBUF套接字选项的值决定。

· int getSoLinger()产生java.net.SocketException异常--返回SO_LINGER 套接字选项的值,它控制连接终止的时候未发送的数据将排队多长时间。

· int getSoTimeout()产生java.net.SocketException异常--返回 SO_TIMEOUT套接字选项的值,它控制读取操作将阻塞多少毫秒。如果返回值为0 ,计时器就被禁止了,该线程将无限期阻塞(直到数据可以使用或流被终止)。

· boolean getTcpNoDelay()产生java.net.SocketException异常--如果 TCP_NODELAY套接字选项的设置打开了返回"true",它控制是否允许使用Nagle算 法。

· void setKeepAlive(boolean onFlag)产生java.net.SocketException异 常--允许或禁止SO_KEEPALIVE套接字选项。

· void setReceiveBufferSize(int size)产生java.net.SocketException 异常--修改SO_RCVBUF套接字选项的值,它为操作系统的网络代码推荐用于接收 输入的数据的缓冲区大小。并不是每种系统都支持这种功能或允许绝对控制这个 特性。如果你希望缓冲输入的数据,我们建议你改用BufferedInputStream或 BufferedReader。

· void setSendBufferSize(int size)产生java.net.SocketException异常 --修改SO_SNDBUF套接字选项的值,它为操作系统的网络代码推荐用于发送输入 的数据的缓冲区大小。并不是每种系统都支持这种功能或允许绝对控制这个特性 。如果你希望缓冲输入的数据,我们建议你改

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号