黑马程序员技术交流社区
标题:
TCP模拟浏览器的问题
[打印本页]
作者:
侠客梦的懒猫
时间:
2013-12-6 21:24
标题:
TCP模拟浏览器的问题
先说问题吧,为什么我的ServerSocket自定义的服务器接有时接收得到,有时接收不到,浏览器发过来的消息呢?
System.out.println(InetAddress.getLocalHost().getHostAddress());
ServerSocket socket=new ServerSocket(11115);
Socket s=socket.accept();
InputStream is=s.getInputStream();
byte[] b=new byte[1024];
int len=is.read(b);
System.out.println("长度"+len);
System.out.println(new String(b,0,len));
BufferedWriter bw=new BufferedWriter(new OutputStreamWriter(s.getOutputStream()));
bw.write("<font color='red'>hello browser</font>");
bw.flush();
bw.close();
s.close();
socket.close();
复制代码
我的访问地址是:192.168.1.102:11115,它老报错,由于我接收到的len等于-1。大虾们,SOS!!!!
作者:
Weix1992
时间:
2013-12-7 18:05
首先你确定你的客户端发送了信息。
有时收到有时没收到的问题是: 你的服务器没有用while(true)循环包起来,接收一次服务器就关闭了
作者:
汪洋大海
时间:
2013-12-7 19:04
在浏览器里面输入这个
http://127.0.0.1:11115
这个一定可以。
希望能帮到你。
作者:
王家胜
时间:
2013-12-7 20:46
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.Date;
public class Server
{
public static void main(String[] args) throws Exception
{
ServerSocket ss=new ServerSocket(8080);
while(true)
{
Socket s=ss.accept();
PrintWriter pw=new PrintWriter(s.getOutputStream(),true);
pw.write("HTTP/1.1 200 OK");
pw.write("\n");
pw.write("\n");
pw.write("\n");
pw.write("<font color='red'>sucess</font>");
pw.flush();
pw.close();
s.close();
}
}
}
复制代码
web服务器,dns,dhcp,都有响应和请求,建议下个抓吧软件捕获其中的信息然后在分析下
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2