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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 黑马唐浩 于 2012-2-5 17:12 编辑

我看毕老师视频网络第24天。
有一个小例子。
代码如下
  1. class  DIYClient
  2. {
  3.         public static void main(String[] args)throws Exception
  4.         {
  5.                  ServerSocket ss = new ServerSocket(11100);

  6.                  Socket s = ss.accept();

  7.                  System.out.println(s.getInetAddress().getHostAddress()+":" + s.getPort());

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

  9.                 out.println("客户端你好");

  10.                 s.close();

  11.                 ss.close();
  12.         }
  13. }
复制代码
命令行能打出ip和端口号,可是浏览器就是无法解析到数据啊

评分

参与人数 2技术分 +1 黑马币 +3 收起 理由
admin + 1
祁焱 + 3 淡定

查看全部评分

6 个回复

倒序浏览
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);
这句话前面。这样代码就完整了。
多看看视频

评分

参与人数 2技术分 +1 黑马币 +3 收起 理由
admin + 1
祁焱 + 3

查看全部评分

回复 使用道具 举报
  1. import java.io.BufferedReader;
  2. import java.io.InputStreamReader;
  3. import java.net.Socket;
  4. //客户端
  5. public class DTYClient {
  6.         public static void main(String[] args) throws Exception {
  7.                 Socket s = new Socket("127.0.0.1",11100);
  8.                 BufferedReader br = new BufferedReader(new InputStreamReader(s.getInputStream()));
  9.                 System.out.println(br.readLine());
  10.                 s.close();
  11.         }
  12. }
复制代码
  1. import java.io.PrintWriter;
  2. import java.net.ServerSocket;
  3. import java.net.Socket;
  4. //服务端
  5. class  DIYService

  6. {

  7.         public static void main(String[] args)throws Exception

  8.         {

  9.                  ServerSocket ss = new ServerSocket(11100);



  10.                  Socket s = ss.accept();



  11.                  System.out.println(s.getInetAddress().getHostAddress()+":" + s.getPort());



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



  13.                 out.println("客户端你好");//out.print("客户端你好");客户端接收不到数据,原因是客户端没有读到结束标志。



  14.                 s.close();



  15.                 ss.close();

  16.         }

  17. }
复制代码
可以解析到数据

评分

参与人数 2技术分 +2 黑马币 +5 收起 理由
admin + 2
祁焱 + 5 赞一个!

查看全部评分

回复 使用道具 举报
王_涛 发表于 2012-2-5 16:59
可以解析到数据

谢谢。
现在又可以解析数据了,代码什么的都没动过。真是邪门啊
回复 使用道具 举报
马欢 发表于 2012-2-5 16:35
InputStream in=s.getInputStream();
byte[] buf=new byte[1024];
int len=in.read(buf);

知道了,谢谢
回复 使用道具 举报
ls  人家说的是浏览器这个客户端解析不到数据。
lu的代码没问题  我的浏览器可以解析,不知道你的浏览器地址写对了没有?我写的是 :http://localhost:11100/
回复 使用道具 举报
最初的理想 发表于 2012-2-5 17:12
ls  人家说的是浏览器这个客户端解析不到数据。
lu的代码没问题  我的浏览器可以解析,不知道你的浏览器地 ...

哈哈。写对了啊。
开始不行的时候,我还http://localhost:11100/试一遍
http://127.0.0.1:11100/试一遍
http://192.168.1.105:11100试了好几遍呢。;P
真是邪门啊。毕老师视频里第一次试也没解析到数据。
后来什么也不干,重复了一遍操作就行了。真是奇怪了。

评分

参与人数 1技术分 +1 收起 理由
荣凯旋 + 1

查看全部评分

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