| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 611 人关注过本帖
标题:很费解的一点用法
取消只看楼主 加入收藏
经哥
Rank: 3Rank: 3
来 自:代码空间
等 级:论坛游侠
威 望:1
帖 子:289
专家分:124
注 册:2012-9-8
结帖率:91.8%
收藏
已结贴  问题点数:50 回复次数:5 
很费解的一点用法
byte[] buf = new byte[1024];
        int len = is.read(buf);
        String getStr = new String(buf, 0, len);//String getStr = new String(buf, 0, is.read(buf));
        System.out.println(getStr);

        ss.close();
        s.close();
我在复习TCP传输客户端的时候发现,如果红色的代码,用注释后的代码就会报错!read()是读buf并且将所读的保存在缓冲数字buf中,那么在写read(buf),编译不会报错?但是运行时是会报错的,因为buf不在是byte数组,但是byte数组跟缓冲行数组又有什么区别?为什么会报错?
搜索更多相关主题的帖子: 客户端 
2014-07-25 00:18
经哥
Rank: 3Rank: 3
来 自:代码空间
等 级:论坛游侠
威 望:1
帖 子:289
专家分:124
注 册:2012-9-8
收藏
得分:0 
回复 2 楼 love 云彩
public class ServerDemo {

    public static void main(String[] args) throws IOException {
        
        
        ServerSocket ss = new ServerSocket(8888);
        Socket s = ss.accept();
        String ip = s.getInetAddress().getHostAddress();
        
        InputStream is = s.getInputStream();
        
        byte[] buf = new byte[1024];
        int len = is.read(buf);
        String message = new String(buf,0,len);
        System.out.println("客户端为:"+ip+" 的 发来信息:  "+message);
    }

}

我只是个演员,还是业余的!!
2014-07-25 22:43
经哥
Rank: 3Rank: 3
来 自:代码空间
等 级:论坛游侠
威 望:1
帖 子:289
专家分:124
注 册:2012-9-8
收藏
得分:0 
回复 4 楼 日知己所无
我转了,也错

我只是个演员,还是业余的!!
2014-07-27 08:56
经哥
Rank: 3Rank: 3
来 自:代码空间
等 级:论坛游侠
威 望:1
帖 子:289
专家分:124
注 册:2012-9-8
收藏
得分:0 
回复 4 楼 日知己所无
我讲的不够好,你可能没理解我的意思

我只是个演员,还是业余的!!
2014-07-27 08:59
经哥
Rank: 3Rank: 3
来 自:代码空间
等 级:论坛游侠
威 望:1
帖 子:289
专家分:124
注 册:2012-9-8
收藏
得分:0 
回复 4 楼 日知己所无
这是服务端:
ublic class ServerDemo {

    public static void main(String[] args) throws IOException {
        
        
        ServerSocket ss = new ServerSocket(8887);
        Socket s = ss.accept();
        String ip = s.getInetAddress().getHostAddress();
        
        InputStream is = s.getInputStream();
        
        byte[] buf = new byte[1024];
        //is.read(buf)
        String message = new String(buf,0,is.read(buf));
        System.out.println("客户端为:"+ip+" 的 发来信息:  "+message);
    }

}
客户端:
public class ClientDemo {


    public static void main(String[] args) throws UnknownHostException, IOException {
        
        Socket s = new Socket("127.0.0.1",8887);
        OutputStream os = s.getOutputStream();
        os.write(" 你妹啊  ".getBytes() );
        
        
        

    }

}
注释部分的代码如果写上去,运行客户端就会报错!不写就不会报错,好难理解原有!

我只是个演员,还是业余的!!
2014-07-27 09:03
经哥
Rank: 3Rank: 3
来 自:代码空间
等 级:论坛游侠
威 望:1
帖 子:289
专家分:124
注 册:2012-9-8
收藏
得分:0 
回复 3 楼 经哥
好了,转换就没有报错了,看来是这样的!刚才弄错了!还以为报错了!

我只是个演员,还是业余的!!
2014-07-27 09:05
快速回复:很费解的一点用法
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.012058 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved