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: -1buff就没有读取到数据么?
服务器是正常的,我通过浏览器就能够访问。
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: -1buff就没有读取到数据么?
服务器是正常的,我通过浏览器就能够访问。
解决方案 »
- 一道JAVA算法题
- 菜鸟问题:线程的run方法是在什么时候调用的呢?
- String 和 StringBuffer 仅仅是对字符串可以进行查找的区别吗?
- java 怎么画圆
- 想取得ArrayList 某个数组元素的某个值即相当与在 Resultset 里取得某个字段的值该怎么做?谢谢!
- 树的问题,急.....
- 请问一下,swing应用中如何保存一个全局变量
- 怎样创建jar文件?(要能双击运行的)
- 项目需求:电子订票平台,基于JAVA 开发 有后台维护系统(具体内容见内) 广东优先
- 有没有通过了scjd的,留个oicq,问您一点小问题,谢谢你了,100分当作见面礼
- .net客户端上传文件问题.
- 如何从内存中读取键值对
问题是,他为什么是-1呢。
还有需要读取很长一段的时间,大概10秒。
我的1.html里就一个<body>Hello</body>
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();
}
改成这样,就不显示任何数据!!!!!!!程序根本就没进入该循环。
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();