电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

java异步socket调用

java异步socket调用_第1页
1/7
java异步socket调用_第2页
2/7
java异步socket调用_第3页
3/7
代码号为”Merlin”的J2SE1.4 带来了一些激动人心的新特性,诸如对正则表达式的支持,异步输入输出流,通道(Channel),字符集等.虽然该版本还处在测试阶段,但这些新特性早已让开发人员们跃跃欲试.在 Merlin 发布之前,异步输入输出流的应用还只是 C,C++程序员的特殊武器;在 Merlin中引入异步输入输出机制之后,Java程序员也可以利用它完成很多简洁却是高质量的代码了.本文将介绍怎样使用异步输入输出流来编写 Socket 进程通信程序. 同步?异步输入输出机制的引入 在 Merlin 之前,编写 Socket 程序是比较繁琐的工作.因为输入输出都必须同步.这样,对于多客户端客户/服务器模式,不得不使用多线程.即为每个连接的客户都分配一个线程来处理输入输出.由此而带来的问题是可想而知的.程序员不得不为了避免死锁,线程安全等问题,进行大量的编码和测试.很多人都在抱怨为什么不在Java中引入异步输入输出机制.比较官方的解释是,任何一种应用程序接口的引入,都必须兼容任何操作平台.因为Java 是跨平台的.而当时支持异步输入输出机制的操作平台显然不可能是全部.自 Java 2 Platform 以后,分离出J2SE,J2ME,J2EE 三种不同类型的应用程序接口,以适应不同的应用开发.Java 标准的制订者们意识到了这个问题,并且支持异步输入输出机制的操作平台在当今操作平台中处于主流地位.于是,Jdk(J2SE) 的第五次发布中引入了异步输入输出机制. 以前的Socket 进程通信程序设计中,一般客户端和服务器端程序设计如下: 1. 服务器端: //服务器端监听线程 while (true) { ............. Socket clientSocket; clientSocket = socket.accept(); //取得客户请求 Socket,如果没有//客户请求连接,线程在此处阻塞 //用取得的Socket 构造输入输出流 PrintStream os = new PrintStream(new BufferedOutputStream(clientSocket.getOutputStream(), 1024), false); BufferedReader is = new BufferedReader(new InputStreamReader(clientSocket.getInputStream())); //创建客户会话线程,进行输入输出控制,为同步机制 new ClientSession(); ....... } 2. 3. 客户端: ............ clientSocket = new Socket(HOSTNAME, LISTENPORT);//连接服务器套接字 //用取得的Socket 构造输入输出流 PrintStream os = new PrintStream(new BufferedOutputStream(clientSocket.getOutputStream(), 1024), false); BufferedReader...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

java异步socket调用

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部