首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

Socket接收数据有关问题

2013-06-19 
Socket接收数据问题Socket接收服务端发送过来的数据,如何知道是否接收完全1:发送端File file new File(p

Socket接收数据问题
Socket接收服务端发送过来的数据,如何知道是否接收完全

1:发送端
File file = new File(path);
BfferedInputStream bis = new BufferedInputStream(new FileInputStream(file));
byte[] buf = new byte[100 * 1024];
int len = bis.read(buf);
bos.write(buf, 0, len);
bos.flush();

2:接收端
ByteArrayBuffer byteBuffer = new ByteArrayBuffer(0);
while((len = bis.read(buffer)) != -1) {
byteBuffer.append(buffer, 0, len);
}
程序会停在while()循环上,请问这样的问题怎么解决啊 java socket
[解决办法]
发个数据包长度过去呗
[解决办法]
应该是发送端没关闭io
所以接收端不知道.服务端有没有发完.

[解决办法]
socket一定要基于协议!
[解决办法]
服务端的serverSocket一般是一直接受状态的,就像我们访问服务器一样,一天24小时能连上
[解决办法]

引用:
socket一定要基于协议!

====================================
回答正确,如果只是熟悉Socket怎么用,懂一下原理想怎么弄就怎么弄,如果你要用于项目开发中,就不是这么容易处理了,协议定义是否合理,关系到性能和稳定性。
学习Socket还是懂一些网络技术原理吧,网络基础课程中有很多组包方案。
很多人提问Socket的,我一般会推荐去看apache mina开源框架。
[解决办法]
你试试把那个循环给去掉 直接读一行,数据没超过一定的量读一行就能把所有的数据都读出来的。

热点排行
Bad Request.