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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© ノtrack 中级黑马   /  2014-4-18 22:25  /  861 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

源码如下
  1. import java.io.*;
  2. import java.net.*;
  3. class Demo1
  4. {
  5.         public static void main(String[] args)throws Exception
  6.         {
  7.                
  8.                 ServerSocket ss = new ServerSocket(11000);

  9.                 Socket s = ss.accept();

  10.                 PrintWriter out = new PrintWriter(s.getOutputStream(),true);

  11.                  InputStream in=s.getInputStream();

  12.                  byte []buf=new byte[1024];
  13.                  int len=0;
  14.                  while((len=in.read(buf))!=-1){
  15.                           System.out.println(new String(buf,0,len));
  16.                  }

  17.                 out.println("<font color='red' size='7'>客户端你好</font>");

  18.                 s.close();
  19.                 ss.close();

  20.         }
  21. }
复制代码


自定义服务端 , 我用telnet访问 一直在等待,  用浏览器打不开  何解 ?

2 个回复

倒序浏览
while((len=in.read(buf))!=-1){
                          System.out.println(new String(buf,0,len));
                 }
问题出现在这里,你这里循环的读取,也没有什么结束标记,服务端根本不知道你什么时候输入完数据,所以,你telnet连接服务端的时候,不是没反应,是在等你输数据,你可以试试输入,服务端是可以接收的,只是不知道什么时候结束,所以下面的代码根本执行部到,所以就一直停在哪里,你把循环去掉就可以了
回复 使用道具 举报
曹冬明 发表于 2014-4-18 23:37
while((len=in.read(buf))!=-1){
                          System.out.println(new String(buf,0,len));
...

那有时候行 有时候不行呀   是不是浏览器有问题 ?  我用谷歌
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马