socket输入流中读取一个固定长度的字节

来源:互联网 发布:mysql 5.6 1067错误 编辑:程序博客网 时间:2024/05/20 16:42

前段时间项目中用到socket编程,我用socket输入流读取一个固定长度的字节经常会遇到各种各样的错误:后面读取内容的错位,或者直接后面的内容读取不到等问题。

具体我用的方法是 socektInputStream.read(byte[] array1);  

最后通过以下代码读取固定长度的字节

public static  byte[] readFixedLengthArray(BufferedInputStream serverSocketBis,int length) throws SocketTimeoutException, IOException{byte [] result = new byte[length];int readLen = 0;int getLen = 0;while(getLen<length){readLen = serverSocketBis.read(result, getLen, length-getLen);serverSocketBis.read(result);if(readLen ==-1){return null;}getLen = getLen + readLen;}        return result;}



0 0
原创粉丝点击