آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

دریافت از Inputstrem بدون ارسال درخواست

BrotherV  7 سال پیش  7 سال پیش
0 0

سلام به تمامی دوستان عزیز. چند وقتی هست که روی یه برنامه دارم کار میکنم که باید از طریق سوکت به یک پورت و IP خاصی متصل بشه. تا اینجا همه چیز خوب پیش میره. من میتونم اطلاعات را ارسال و دریافت کنم اما سرور پکیچ های به روزآوری را هر 2 دقیقه یکبار ارسال میکنه که Inputstrem هیچ واکنشی به اطلاعات ارسالی نمیده. نمونه برنامه ویندوز به اطلاعات ارسالی سرور جواب میده اما نمیدنم مشکل کار من کجاست؟ چطور میتونم به ورودی بدون ارسال درخواست گوش بدم؟ (داده های دریافتی من از نوع بایت هست) ممنون میشم راهنماییم کنید. این نمونه کد سورس من برای دریافت داده هست.

 
private void receiveData(){
    // Again, probably better to store these objects references in the support class
    if(getSocket() != null && getSocket().isConnected()){
        try {
            Log.i("Log", "Ready to receive!");
            byte[] buffer  = new byte[8192];
            final ByteArrayOutputStream baos = new ByteArrayOutputStream();
            int bytesRead = -1;
            while((bytesRead = inputStream.read(buffer)) != -1){
                baos.write(buffer, 0, bytesRead );
                rec_buffer = baos.toByteArray();
                for (int i = 0; i< byteRead; i++)
                    //Log.i("Log", "Data i: " + rec_buffer[i]);
                    Log.i("Log", "Data i: " + String.format("0x%20x", rec_buffer[i]));
                mResponseHandler.post(new Runnable(){
                    @Override
                    public void run(){
                        if(mCallback != null){
                            baos.reset();
                            mCallback.onDataReceived(rec_buffer);
                        }
                    }
                });
            }

        } catch (IOException e) {
            Log.e("Log", "Error occured during receiving data");
            e.printStackTrace();
        }
    }
}
 برای این سوال پاسخی وجود ندارد.

پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .