Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
D@rkD@iver
112 / 112 / 13
Регистрация: 01.10.2008
Сообщений: 876
1

Получать данные по сокетам

24.04.2012, 15:24. Просмотров 773. Ответов 0
Метки нет (Все метки)

Здравствуйте, пишу Socket клиент для Android на Java который коннектится к серверу и сервер начинает отправлять данные в таком формате
первые 4 байта- размер файла
затем сам файл
потом опять 4 байта- размер след файла
потом опять файл
и так далее

сервер передает эти данные беспрерывно
но возникает проблема с получением
первый файл получаю нормально а потом идет бред

метод read возвращает 4, но полученное число равняется 0
и так пока приложение не закрывается

то есть read не ждет и не возвращает -1 если данных нет
а считывает че попало неизвесно откуда

как вообще возможно такое организовать?
сервер присылает картинки, хотелось бы чтобы приложение получало картинки и выводило их на экран и получилось что-то типа StreamVideo

Заранее спапсибо
вот код клиента

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
InputStream in= mySock.getInputStream();
            //BufferedReader reader = new BufferedReader(new InputStreamReader(mySock.getInputStream()));
            read = 0;
            boolean a= true;
            while (a)
            {
                //read = reader.read(mData);
                
                
                if (in.available()==0)
                {
                    continue;
                }
                rawN= new byte[4];
                rawData = new byte[20000];
                read= 0;
                read= in.read(rawN, 0, 4);
                intValue= IntFromRaw(rawN);
                if (read>0)
                    Log.i("MySimpleAppLogging", Integer.toString(intValue)+"!!"+Integer.toString(read));
                //if(read > 0) publishProgress(read);
                
                int total= 0;
                //int left= 19999;
                int left= intValue;
                
                while (left>0)
                {
                    read= in.read(rawData, total, left);
                    
                    total+= read;
                    left-= read;
                    Log.i("MySimpleAppLogging", Integer.toString(read)+"::"+Integer.toString(total)+"::"+Integer.toString(left));
                }
                //publishProgress(read);
            }
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.04.2012, 15:24
Ответы с готовыми решениями:

Не удается подключиться к телефону по сокетам
Есть приложение на android, в нем кроме главного потока есть поток, который...

Получать с сайта картинки, и выводить из через слайдер
Использовал такой парсер :...

Можно ли одновременно получать изображение с двух камер
фронтальной и заднего вида?

Как и чем лучше получать информацию в приложение удаленно. Более точно в описании
Привет всем! Натолкните пожалуйста, хотел сам, но очень мало опыта и знаний....

Есть ли API на Android, чтобы я мог отклонить входящий звонок, получать инфу о звонке?
Очень нужно, если есть такая документация по API до дайте ссылку, хочу написать...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.04.2012, 15:24

Получать данные по сокетам
Здравствуйте, пишу Socket клиент для Android на Java который коннектится к...

Получать данные из интернет
Подскажите пожалуйста статью или способ как можно сделать так, чтобы программы...

Красиво получать данные
VS 2013, C#, WPF. При обращении программы к COM или USB-порту происходит...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru