网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > Java
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
本月文章推荐
.J2ee学习流程.
.Spring+hibernate的单元测试Junit.
.Applet编程技巧.
.jboss配置 mysql数据库连接.
.应用Nokia UI API处理声音问题.
.运用 DBUnit 进行高效的单元测试.
.Java也存在2000年问题.
.Java编译器对于String常量表达式.
.关于struts的文本域.
.java读取操作系统环境变量.
.J2EE 开发技术全接触.
.Java 平台透析.
.未支持的操作.
.CORBA技术及实例.
.Struts Validator的使用.
.使用Netbeans IDE 5.0解决Java M.
.变量范围.
.使用JBuilder2007开发Web Servic.
.玩玩Spring之IOC.
.一个堆栈类.

JAVA 的Socket机制

发表日期:2008-1-5



  Socket机制用到的类有Java.net.ServerSocket、java.net.Socket等。服务器端以监听端口号和接受队列长度为参数实例化ServerSocket类,缺省的队列长度是50,以accept()方法接收客户的连接。客户端则直接以服务器的地址和监听端口为参数实例化Socket类,连接服务器,缺省的连接方式是stream socket(区别于datagram socket)。
   服务器端和客户端调用getInputStream()和getOutputStream()方法得到输入/输出流。假如以ObjectInputStream和ObjectOutputStream包装Socket的输入/输出流,要注重一点,ObjectOutputStream类实例化时要向底层流写入一个标识码,ObjectInputStream类相应的读入该标识码,假如实例化的次序不当会引起死锁。建议客户服务器两端都先实例化ObjectOutputStream。
   因为调用ServerSocket类的accept()方法和Socket输入流的read()方法时会引起线程阻塞,所以应该用setSoTimeout()方法设置超时,缺省的设置是0,即超时永远不会发生。超时的判定是累计式的,一次设置后,每次调用引起的阻塞时间都从该值中扣除,直至另一次超时设置或有超时异常抛出。比如,某种服务需要三次调用read(),超时设置为1分钟,那么假如某次服务三次read()调用的总时间超过1分钟就会有异常抛出,假如要在同一个Socket上反复进行这种服务,就要在每次服务之前设置一次超时。
上一篇:一个完整的Socket例子 人气:1797
下一篇:Java做一个最简单的Socket通话程序 人气:816
浏览全部Java的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐