黑马程序员技术交流社区

标题: 关于浏览器客服端——自定义服务端的问题 [打印本页]

作者: hdsjsql    时间: 2013-5-23 21:13
标题: 关于浏览器客服端——自定义服务端的问题
本帖最后由 hdsjsql 于 2013-5-24 10:01 编辑

为什么运行了以下程序,在浏览器中输入http://127.0.0.1:11000/后,打不开网页
  1. import java.net.*;
  2. import java.io.*;
  3. public class ServerDemo

  4. {
  5.         public static void main(String[] args)throws Exception
  6.         {
  7.                 ServerSocket ss=new ServerSocket(11000);
  8.                
  9.                 Socket s=ss.accept();
  10.                 System.out.println(s.getInetAddress().getHostAddress());
  11.                
  12.                 InputStream in=s.getInputStream();
  13.                
  14.                 byte[] buf=new byte[1024];
  15.                 int len=in.read(buf);
  16.                
  17.                 System.out.println(new String(buf,0,len));
  18.                
  19.                 PrintWriter out=new PrintWriter(s.getOutputStream(),true);
  20.                
  21.                 out.println("客服端你好");
  22.                 s.close();
  23.                 ss.close();
  24.                
  25.         }

  26. }
复制代码

作者: joker_chan    时间: 2013-5-23 21:24
这个和网页有什么关系啊。
作者: 风乐    时间: 2013-5-23 22:37
http://127.0.0.1:11000把那个冒号改成英文的。我用的浏览器都会自己转换的。怎么会读不到呢,读的到啊,但是因为你这个打印完("客服端你好")就关闭连接了,所以开一次服务端只能连接一次。重复刷新没用的,只能关了服务器再开,楼主可弄个循环,然后保持服务端资源不关闭,更容易看到效果,
import java.net.*;
import java.io.*;
public class Test

{
        public static void main(String[] args)throws Exception
        {
                ServerSocket ss=new ServerSocket(11000);
               
               while(true)
                                {
                                   Socket s=ss.accept();
                System.out.println(s.getInetAddress().getHostAddress());
               
              /*  InputStream in=s.getInputStream();
               
                byte[] buf=new byte[1024];
                int len=in.read(buf);
               
                System.out.println(new String(buf,0,len));
              */  
                PrintWriter out=new PrintWriter(s.getOutputStream(),true);
               
                out.println("客服端你好");
                //s.close();
              //  ss.close();
                          }
               
        }

}
作者: 刘胜寒    时间: 2013-5-24 00:38
服务器开启了没。。
作者: 袁梦希    时间: 2013-5-24 01:01
楼主加油  提的问题很好,看看能不能解决,不能解决让刘胜寒帮你   如果问题以解决,请修改分类,谢谢合作。{:soso_e163:}
作者: hdsjsql    时间: 2013-5-24 09:04
刘胜寒 发表于 2013-5-24 00:38
服务器开启了没。。

服务器先开起的,不知道是不是系统的问题,用的是阉割版的win8,
作者: hdsjsql    时间: 2013-5-24 09:52
本帖最后由 hdsjsql 于 2013-5-24 09:53 编辑
风乐 发表于 2013-5-23 22:37 http://127.0.0.1:11000把那个冒号改成英文的。我用的浏览器都会自己转换的。怎么会读不到呢,读的到啊, ...

按照上面的说法,把代码改了一下,浏览器上终于能显示内容了,只是不知道原因...
  1. import java.net.*;
  2. import java.io.*;
  3. class Test

  4. {
  5.         public static void main(String[] args)throws Exception
  6.         {
  7.                 ServerSocket ss=new ServerSocket(11000);
  8.                  Socket s=ss.accept();
  9.             
  10.                 PrintWriter out=new PrintWriter(s.getOutputStream(),true);
  11.                                 
  12.             
  13.                while(true)
  14.                                    {
  15.                                   out.println("客服端你好");
  16.                         
  17.                                 System.out.println("已打印");
  18.                                    
  19.                                    
  20.               
  21.                          }
  22.                
  23.         }

  24. }
复制代码

作者: hdsjsql    时间: 2013-5-24 10:01
换了一台win7的本本,什么都正常了,都是系统的问题。谢谢大家的回复




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