亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

Chinaunix

標(biāo)題: socket通信關(guān)于二進(jìn)制數(shù)據(jù)的接收問題! [打印本頁]

作者: ubac    時(shí)間: 2007-09-06 14:50
標(biāo)題: socket通信關(guān)于二進(jìn)制數(shù)據(jù)的接收問題!
Socket服務(wù)端原來使用的是DataInputStream來接收客戶端的數(shù)據(jù),采用的方法是readLine()
因?yàn)橐渴鸬絃inux系統(tǒng)下,在打jar包時(shí),發(fā)現(xiàn)無法生成.class文件
而客戶端發(fā)送過來的數(shù)據(jù)有的時(shí)候全部都是字符串,需要判斷字符串做相應(yīng)的處理
某些特定的請求包含了二進(jìn)制數(shù)據(jù)和字符串,所以采用的是字節(jié)流來傳輸這些數(shù)據(jù)

現(xiàn)在的問題是不知道如何還原這些字符串,同時(shí)保證不破壞原數(shù)據(jù)的結(jié)構(gòu)。
不知道用BufferedStreamReader是否可以,不過沒有readLine()方法。。。

以上,添麻煩了!
作者: ubac    時(shí)間: 2007-09-07 08:39
基本上搞定了,自己寫了個(gè)函數(shù):
    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 編輯 ]
作者: youzlm    時(shí)間: 2010-07-26 14:46
如何把二進(jìn)制跟字符串分開啊




歡迎光臨 Chinaunix (http://www.72891.cn/) Powered by Discuz! X3.2