|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
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++基本一致,但是启动速度还是慢.代码安全,但容易性能陷阱. |
|