关于从Socket流中读取数据的请教!

setimouse setimouse 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
代码中有一个Socket

Socket fd;

它是用来将HTTP请求发送到WebServer,之后再取到WebServer的返回结果。例如:
发送:
GET http://www.sina.com.cn HTTP/1.0
...
...

WebServer会返回相应的结果:
HTTP 200 OK
...
...

我在代码中设置了相应的输入输出流

InputStream is;
OutputStream os;

is = fd.getInputStream();
os = fd.getOutputStream();

之后用is将请求数据(已转换成byte[])成功发送到WebServer。(通过抓包工具看出已成功发送)

接着用os进行接收

int iLength = os.available();
byte[] b = new byte[iLength];

os.read(b);

但是b却没有写入任何内容。

(这里要说明的是我通过抓包工具看出WebServer已经将正确的信息响应到本地)

请问在实现这个Socket流的接收过程中,我是否还要做些别的什么才能正确得到Socket的响应?

我听说有一个叫BufferedInputStream, BufferedOutputStream是否与这个有关?

是否是Socket数据流需要缓冲?
...全文

相关推荐

评论 3
收藏 已收藏
分享
返回顶部
setimouse
Java SE 62,621 成员 307,251 内容