黑马程序员技术交流社区

标题: TCP模拟浏览器的问题 [打印本页]

作者: 侠客梦的懒猫    时间: 2013-12-6 21:24
标题: TCP模拟浏览器的问题
先说问题吧,为什么我的ServerSocket自定义的服务器接有时接收得到,有时接收不到,浏览器发过来的消息呢?
  1. System.out.println(InetAddress.getLocalHost().getHostAddress());
  2.                 ServerSocket socket=new ServerSocket(11115);
  3.                 Socket s=socket.accept();
  4.        
  5.                 InputStream is=s.getInputStream();
  6.           
  7.                 byte[] b=new byte[1024];
  8.                 int len=is.read(b);
  9.                 System.out.println("长度"+len);
  10.             System.out.println(new String(b,0,len));       
  11.                 BufferedWriter bw=new BufferedWriter(new OutputStreamWriter(s.getOutputStream()));
  12.                
  13.                 bw.write("<font color='red'>hello browser</font>");
  14.                 bw.flush();
  15.                 bw.close();
  16.                
  17.                 s.close();
  18.                 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
  1. import java.io.PrintWriter;
  2. import java.net.ServerSocket;
  3. import java.net.Socket;
  4. import java.util.Date;


  5. public class Server
  6. {
  7.         public static void main(String[] args) throws Exception
  8.         {
  9.                 ServerSocket ss=new ServerSocket(8080);
  10.                 while(true)
  11.                 {
  12.                         Socket s=ss.accept();
  13.                         PrintWriter pw=new PrintWriter(s.getOutputStream(),true);
  14.                         pw.write("HTTP/1.1 200 OK");
  15.                         pw.write("\n");
  16.                         pw.write("\n");
  17.                         pw.write("\n");
  18.                         pw.write("<font color='red'>sucess</font>");
  19.                         pw.flush();
  20.                         pw.close();
  21.                         s.close();
  22.                 }
  23.         }
  24. }
复制代码

web服务器,dns,dhcp,都有响应和请求,建议下个抓吧软件捕获其中的信息然后在分析下




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2