这段代码为何出错?

2013-08-08 05:40:43
package cn.dzr.uploadpic;

import java.io.IOException;
import java.io.InputStream;
import java.io.PrintWriter;
import java.net.InetAddress;
import java.net.Socket;


public class MyBrowser
{

public static void main(String[] args) throws IOException, IOException
{
Socket socket = new Socket(InetAddress.getLocalHost(),8080);

PrintWriter pw = new PrintWriter(socket.getOutputStream());

pw.println("GET /myweb/1.html HTTP/1.1");
pw.println("Accept : */*");
pw.println("Host: 0.0.0.0:8080");
pw.println("Connection : close");
pw.println();
pw.println();

InputStream in = socket.getInputStream();

byte[] buff = new byte[1024];
int len = in.read(buff);

String str = new String(buff,0,len);
System.out.println(str);
socket.close();
}

}

提示错误如下:
Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: -1

buff就没有读取到数据么?
服务器是正常的,我通过浏览器就能够访问。
...全文
182 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
白开水MD5 2013-08-08
  • 打赏
  • 举报
回复
我也不懂 刚自己试了下 1、 pw.println(); pw.println(); 后面加个flush 2、 while((len=in.read(buff))!=-1) { System.out.println(len); String str = new String(buff,0,len); System.out.println(str); socket.close(); } 改成 while((len=in.read(buff))!=-1) { System.out.println(len); String str = new String(buff,0,len); System.out.println(str); } socket.close();
2013-08-08
  • 打赏
  • 举报
回复
InputStream in = socket.getInputStream(); byte[] buff = new byte[1024]; int len = 0; while((len=in.read(buff))!=-1) { System.out.println(len); String str = new String(buff,0,len); System.out.println(str); socket.close(); } 改成这样,就不显示任何数据!!!!!!!程序根本就没进入该循环。
2013-08-08
  • 打赏
  • 举报
回复
引用 1 楼 fudongrifdr 的回复:
 int len = in.read(buff);
返回的不是长度,你看看是不是-1,表示已经读到末尾
问题是,他为什么是-1呢。 还有需要读取很长一段的时间,大概10秒。 我的1.html里就一个<body>Hello</body> 。。。
2013-08-08
  • 打赏
  • 举报
回复
引用 1 楼 fudongrifdr 的回复:
 int len = in.read(buff);
返回的不是长度,你看看是不是-1,表示已经读到末尾
就是 -1....
白开水MD5 2013-08-08
  • 打赏
  • 举报
回复
楼上正解
末日哥 2013-08-08
  • 打赏
  • 举报
回复
 int len = in.read(buff);
返回的不是长度,你看看是不是-1,表示已经读到末尾

62,621

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧