日期:2014-05-20  浏览次数:20657 次

Socket的readline读取速度还能提高么?
目前手里有2设备,1设备的client端通过socket连接到另一设备服务器端。
client端连接并接收服务器端的512行文字数据花了22秒!!!
有办法提高读取速度吗?
client我还能改改,但是服务器端我就动不了了。

client读取源码如下
SocketChannel mSocketChannel;
mSocketChannel=SocketChannel.open();
mSocketChannel.connect(new InetSocketAddress("127.0.0.1",4939));
mSocketChannel.socket().setSoTimeout(25000);
mSocketChannel.socket().setReceiveBufferSize(1000000); //

BufferedReader in=new BufferedReader(new InputStreamReader(mSocketChannel.socket().getInputStream()));
String line="";
while((line=in.readline()) !=null)
{
if("DONE.".equalsIgnoreCase(line))
{
break;
}

} //这里读取就花了22秒

能有方法提高速度吗,比如缩短到7~8秒

------解决方案--------------------
1 你确认服务器端发送的速度很快吗? 我怀疑!
2 你干嘛要一行一行的读呢?直接读到一个byte[] 不是更好。