免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 7212 | 回复: 2
打印 上一主题 下一主题

socket通信关于二进制数据的接收问题! [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-09-06 14:50 |只看该作者 |倒序浏览
Socket服务端原来使用的是DataInputStream来接收客户端的数据,采用的方法是readLine()
因为要部署到Linux系统下,在打jar包时,发现无法生成.class文件
而客户端发送过来的数据有的时候全部都是字符串,需要判断字符串做相应的处理
某些特定的请求包含了二进制数据和字符串,所以采用的是字节流来传输这些数据

现在的问题是不知道如何还原这些字符串,同时保证不破坏原数据的结构。
不知道用BufferedStreamReader是否可以,不过没有readLine()方法。。。

以上,添麻烦了!

论坛徽章:
0
2 [报告]
发表于 2007-09-07 08:39 |只看该作者
基本上搞定了,自己写了个函数:
    public String readLine(BufferedInputStream in) throws IOException {
        StringBuffer buffer = new StringBuffer();
        
        int c = in.read();
        while(c != -1) {
            if( c == '\n') {
                break;
            }
                
            if( c == '\r') {
                in.mark(1);
                if(in.read() != '\n') {
                    in.reset();
                }
                    
                break;
            }
                
            buffer.append((char)c);
            c = in.read();
        }
            
        return buffer.toString();
    }


[ 本帖最后由 ubac 于 2007-9-7 18:32 编辑 ]

论坛徽章:
0
3 [报告]
发表于 2010-07-26 14:46 |只看该作者
如何把二进制跟字符串分开啊
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP