快速业务通道

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

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-22
用BufferedOutputStream或 Buffered Writer。

· static void setSocketImplFactory (SocketImplFactory factory)产生 java.net.SocketException、java.io.IOException、java. lang.SecurityException异常--为JVM指定一个套接字实现的产生组件,它可以 已经存在,也可能违反了安全性约束条件,无论是哪种情况都会产生异常。只能 指定一个产生组件,当建立套接字的时候都会使用这个产生组件。

· void setSoLinger(boolean onFlag, int duration)产生java.net. SocketException、java.lang.IllegalArgumentException异常--激活或禁止 SO_LINGER套接字选项(根据布尔型参数onFlag的值),并指定按秒计算的持续 时间。如果指定负值,将产生异常。

· void setSoTimeout(int duration)产生java.net.SocketException异常 --修改SO_TIMEOUT套接字选项的值,它控制读取操作将阻塞多长时间(按毫秒计 )。0值会禁止超时设置,引起无限期阻塞。如果发生了超时,当套接字的输入 流上发生读取操作的时候,会产生java.io.IOInterruptedException异常。这与 内部的TCP计时器是截然不同的,它触发未知报文包的重新发送过程。

· void setTcpNoDelay(boolean onFlag)产生java.net.SocketException异 常--激活或禁止TCP_NODELAY套接字选项,它决定是否使用Nagle算法。

· void shutdownInput()产生java.io.IOException异常--关闭与套接字关 联的输入流,并删除所有发送的更多的信息。对输入流的进一步的读取将会遭遇 流的结束标识符。

· void shutdownOutput()产生java.io.IOException异常--关闭与套接字关 联的输出流。前面写入的、但没有发送的任何信息将被清除,紧接着是TCP连接 终止,它通知应用程序没有更多的数据可以使用了(在Java应用程序中,这样就 到达了流的末尾)。向套接字进一步写入信息将引起IOException异常。

Java网络编程之传输控制协议(5)

时间:2010-12-16 天极 陶刚

3、向TCP套接字读取和写入信息

在Java中使用TCP建立用于通讯的客户端软件极其简单,无论使用哪种操作系 统都一样。Java网络API提供了一致的、平台无关的接口,它允许客户端应用程 序连接到远程服务。一旦建立了套接字,它就已经连接了并准备使用输入和输出 流读取/写入信息了。这些流都不需要建立,它们是Socket. getInputStream() 和Socket.getOutputStream()方法提供的。

为了简化编程,过滤器可以很容易地连接到套接字流。下面的代码片断演示 了一个简单的TCP客户端,它把BufferedReader连接到套接字输入流,把 PrintStream连接到套接字输出流。

try { // 把套接字连接到某台主机和端口 Socket socket = new Socket ( somehost, someport );// 连接到被缓冲地 读取程序 BufferedReader reader = new BufferedReader ( new InputStreamReader ( socket.getInputStream() ) ); // 连接到打印流 PrintStream pstream = new PrintStream( socket.getOutputStream() ); } catch (Exception e) { System.err.println ("Error - " + e); }

4、套接字选项

套接字选项是改变套接字工作方式的设置,并且它们能影响(正反两方向) 应用程序的性能。对于套接字选项的支持是在Java 1.1中引入的,在后面的一些 版本中对其中一些做了改进(例如在Java 2 和Java 3中支持SO_KEEPALIVE选项 )。通常情况下,不应该修改套接字选项,除非有很必要的原因,因为这种改变 可能反面影响应用程序和网络的性能(例如,激活Nagle算法可能提高telnet类 型应用程序的性能,但是会降低可以使用地网络带宽)。唯一的例外是 SO_TIMEOUT选项--事实上,如果套接字连接的应用程序传输数据出现失败的时候 ,它都应该温和地处理

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站: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号