第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

回調(diào)中的 Java 數(shù)組數(shù)據(jù)損壞

回調(diào)中的 Java 數(shù)組數(shù)據(jù)損壞

森欄 2024-01-25 22:03:09
這段代碼給我?guī)砹艘恍﹩栴}。這只是服務(wù)的線程部分,用于接收通過 TCP 連接發(fā)送的數(shù)據(jù)。此數(shù)據(jù)是通過回調(diào)提供給 Activity 的圖像(160x120x16bpp = 38400 字節(jié))。public void run() {    InetAddress serverAddr;    link_respawn = 0;    try {        serverAddr = InetAddress.getByName(VIDEO_SERVER_ADDR);    } catch (UnknownHostException e) {        Log.e(getClass().getName(), e.getMessage());        e.printStackTrace();        return;    }    Socket socket = null;    DataInputStream stream;    do {        bad_frames = 0;        frames = 0;        status = FrameDecodingStatus.Idle;        try {            socket = new Socket(serverAddr, VIDEO_SERVER_PORT);            stream = new DataInputStream(new BufferedInputStream(socket.getInputStream()));            final byte[] _data = new byte[PACKET_SIZE];            final byte[] _image_data = new byte[IMAGE_SIZE];            int _data_index = 0;            while (keepRunning) {                if (stream.read(_data, 0, _data.length) == 0)                    continue;                for (byte _byte : _data) {                    if (status == FrameDecodingStatus.Idle) {                        if (_byte == SoF) {                            status = FrameDecodingStatus.Data;                            _data_index = 0;                        }                    } else if ((status == FrameDecodingStatus.Data) && (_data_index < IMAGE_SIZE)) {                        _image_data[_data_index] = _byte;                        _data_index++;                    } else if ((status == FrameDecodingStatus.Data) && (_data_index == IMAGE_SIZE)) {                        if (_byte == EoF) {                            if(frameReadyCallBack!=null)                                frameReadyCallBack.frameReady(_image_data);                            frames++;                            status = FrameDecodingStatus.Idle;                        }                    }                }            }接收回調(diào)的Android發(fā)現(xiàn)數(shù)組中的數(shù)據(jù)以一種非常奇怪的方式損壞..即從某個索引開始數(shù)組中的數(shù)據(jù)被 設(shè)置為0。我怎樣才能避免這種情況?Activity
查看完整描述

1 回答

?
呼啦一陣風

TA貢獻1802條經(jīng)驗 獲得超6個贊

read不是readFully。三參數(shù)read返回已讀取的字節(jié)數(shù),這不一定是所提供數(shù)組的完整長度。


此代碼刪除read返回值并處理整個數(shù)組。


            if (stream.read(_data, 0, _data.length) == 0)

                continue;


            for (byte _byte : _data) {


查看完整回答
反對 回復(fù) 2024-01-25
  • 1 回答
  • 0 關(guān)注
  • 143 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號