A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 侠客梦的懒猫 中级黑马   /  2013-12-6 21:24  /  1189 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

先说问题吧,为什么我的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!!!!

评分

参与人数 1技术分 +1 收起 理由
简★零度 + 1

查看全部评分

3 个回复

倒序浏览
首先你确定你的客户端发送了信息。

有时收到有时没收到的问题是: 你的服务器没有用while(true)循环包起来,接收一次服务器就关闭了
回复 使用道具 举报
在浏览器里面输入这个
http://127.0.0.1:11115
这个一定可以。
希望能帮到你。
回复 使用道具 举报
  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,都有响应和请求,建议下个抓吧软件捕获其中的信息然后在分析下

评分

参与人数 1技术分 +1 收起 理由
简★零度 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马