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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

我通过浏览器可以访问,服务端可以收到客户端的请求,我在命令行输入telnet 命令后客户端一直阻塞,但是服务端显示连接了,ctrl+c 停止客户端后,服务端收到客户端的请求是一个字符,客户端这时收到了服务端发送的数据。求解释?
这是服务端的截图:

代码:
  1. import java.net.*;
  2. import java.io.*;

  3. class  ServerDemo
  4. {
  5.         public static void main(String[] args) throws Exception
  6.         {
  7.                 ServerSocket ss = new ServerSocket(5000);
  8.                 Socket s = ss.accept();
  9.                 String ip = s.getInetAddress().getHostAddress();
  10.                 System.out.println("ip::"+ip);
  11.                 InputStream is = s.getInputStream();
  12.                 byte[] buff = new byte[1024];
  13.                 int len = is.read(buff);
  14.                 System.out.println(new String(buff,0,len));
  15.                 PrintWriter out = new PrintWriter(s.getOutputStream(),true);
  16.                 out.println("<font color='red'size='7'>客户端你好!!!</font>");
  17.                 s.close();
  18.                 ss.close();
  19.         }
  20. }
复制代码

5 个回复

倒序浏览
我复制你的代码试了下,没有你所说的问题
回复 使用道具 举报
袁培育 发表于 2012-6-3 15:58
我复制你的代码试了下,没有你所说的问题

可是我试了N多次,还是这样,不一定CTRL+c ,任意键就可以停止,但是服务端没有任何字符
回复 使用道具 举报
何拴绪 发表于 2012-6-3 16:30
可是我试了N多次,还是这样,不一定CTRL+c ,任意键就可以停止,但是服务端没有任何字符 ...

你上传的代码与你运行的代码是同一个吗?你上传的代码是这样运行的,开启服务端后等待客户连接,浏览器地址栏输入172.24.29.26:5000(IP是我电脑的)点转到就直接显示客户端你好了,同时服务端也关闭了
回复 使用道具 举报
何拴绪 发表于 2012-6-3 16:30
可是我试了N多次,还是这样,不一定CTRL+c ,任意键就可以停止,但是服务端没有任何字符 ...

不好意思啊!刚才理解错你的问题了,现在知道你是用windows自带的客户端在连你的服务端了,因为服务端与客户端连接后服务端一直在等待客户端输入数据,所以阻塞,客户端一直在等你输入数据所以也阻塞,当你ctrl+c结束客户端时,相当于输入了EXT并发送到服务端,EXT的字符串形式就是那个心
回复 使用道具 举报
袁培育 发表于 2012-6-3 17:37
你上传的代码与你运行的代码是同一个吗?你上传的代码是这样运行的,开启服务端后等待客户连接,浏览器地 ...

需求是这样的。可是我试了好多次不行的说。。。郁闷了 莫非电脑的问题还是人品问题。。。谢啦我一会找同学电脑再试试。。。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马