仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 481|回复: 9
打印 上一主题 下一主题

[学习教程] 来看Java Socket输出流怎样检测到EOF

[复制链接]
萌萌妈妈 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-18 10:59:41 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
多谢指点,其实我对.net和ruby也不是很了解,对与java也只是刚起步的阶段,只是在学习中有了点想法就写出来了,现在俺本科还没毕业,所以对大型项目基本上也没有什么经验。
关于InputStream的read(b,off,len)办法publicintread(byte[]b,intoff,intlen)throwsIOException,Javadoc的申明为:
Ifleniszero,thennobytesarereadand0isreturned;otherwise,thereisanattempttoreadatleastonebyte.Ifnobyteisavailablebecausethestreamisatendoffile,thevalue-1isreturned;otherwise,atleastonebyteisreadandstoredintob.
Thedefaultimplementationofthismethodblocksuntiltherequestedamountofinputdatalenhasbeenread,endoffileisdetected,oranexceptionisthrown.
那末关于服务端Socket的输出流来讲,甚么是endoffile-EOF?起首申明一点,没有所谓的标识字符是EOF,关于字撙节来讲,从0~255的每一个字节都是一般的数据,EOF只是输出流的一种形态。
当Socket客户端封闭的时分,服务端输出流在读完一切数据以后就会检测到EOF,然后服务端输出流前往-1。假如客户端Socket没有封闭,而且没无数据可读取的情形下,read办法会堵塞,守候无数据可读。假如设置了SoTimeout,那末直到超时抛出非常,假如没有设置超时,那末会一向守候数据抵达。
经由过程测试,客户端封闭Socket以后,服务端还能够反复读取,每次都前往-1。
csdn博客kingspider-sh
更多出色内容:http://www.bianceng.cn/Programming/Java/

C#跟java类似,但是在跨平台方面理论上可以跨平台,实际上应用不大,执行性能优于java,跟C++基本一致,但是启动速度还是慢.代码安全,但容易性能陷阱.
第二个灵魂 该用户已被删除
沙发
发表于 2015-1-20 12:30:19 | 只看该作者
是一种简化的C++语言 是一种安全的语言,具有阻绝计算机病毒传输的功能
冷月葬花魂 该用户已被删除
板凳
发表于 2015-1-21 07:12:56 来自手机 | 只看该作者
《JAVA语言程序设计》或《JAVA从入门到精通》这两本书开始学,等你编程有感觉的时候也可以回看一下。《JAVA读书笔记》这本书,因为讲的代码很多,也很容易看懂,涉及到面也到位。是你学习技术巩固的好书,学完后就看看《JAVA编程思想》这本书,找找一个自己写的代码跟书上的代码有什么不一样。
小魔女 该用户已被删除
地板
发表于 2015-1-25 22:57:49 | 只看该作者
不过,每次的执行编译后的字节码需要消耗一定的时间,这同时也在一定程度上降低了 Java 程序的运行效率。
透明 该用户已被删除
5#
发表于 2015-2-4 07:56:22 | 只看该作者
不过,每次的执行编译后的字节码需要消耗一定的时间,这同时也在一定程度上降低了 Java 程序的运行效率。
老尸 该用户已被删除
6#
发表于 2015-2-9 19:21:30 | 只看该作者
Java是一个纯的面向对象的程序设计语言,它继承了 C++语言面向对象技术的核心。Java舍弃了C ++语言中容易引起错误的指针(以引用取代)、运算符重载(operator overloading)
金色的骷髅 该用户已被删除
7#
发表于 2015-2-27 18:50:56 | 只看该作者
设计模式是高级程序员真正掌握面向对象核心思想的必修课。设计模式并不是一种具体"技术",它讲述的是思想,它不仅仅展示了接口或抽象类在实际案例中的灵活应用和智慧
山那边是海 该用户已被删除
8#
发表于 2015-3-9 11:05:48 | 只看该作者
不过,每次的执行编译后的字节码需要消耗一定的时间,这同时也在一定程度上降低了 Java 程序的运行效率。
飘灵儿 该用户已被删除
9#
发表于 2015-3-16 21:51:45 | 只看该作者
设计模式是高级程序员真正掌握面向对象核心思想的必修课。设计模式并不是一种具体"技术",它讲述的是思想,它不仅仅展示了接口或抽象类在实际案例中的灵活应用和智慧
爱飞 该用户已被删除
10#
发表于 2015-3-23 04:05:01 | 只看该作者
吧,现在很流行的Structs就是它的一种实现方式,不过Structs用起来实在是很繁,我们只要学习其精髓即可,我们完全可以设计自己的MVC结构。然后你再研究一下软件Refactoring (重构)和极限XP编程,相信你又会上一个台阶。 做完这些,你不如整理一下你的Java代码,把那些经典的程序和常见的应用整理出来,再精心打造一番,提高其重用性和可扩展性。你再找几个志同道合的朋友成立一个工作室吧
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-24 04:06

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表