Форум программистов, компьютерный форум, киберфорум
Наши страницы

Программирование Android

Войти
Регистрация
Восстановить пароль
 
zoleg
19 / 19 / 1
Регистрация: 10.01.2012
Сообщений: 194
#1

Server->Client Обновление БД длинной строкой. Приходит не все отосланное - Программирование Android

22.12.2016, 15:59. Просмотров 194. Ответов 1
Метки нет (Все метки)

Отправляю из Сишной проги по сокету, длинную строку с командами создания и обновления БД Sqlite на андроиде.
При приеме вычитывается только третья часть - длинна вычитанного постоянна.
В чем проблема?

Принимаю так
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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
            //create a socket to make the connection with the server
            socket = new Socket(serverAddr, SERVER_PORT);
 
 
            try {
 
//                //sends the message to the server
//                mBufferOut = new PrintWriter(new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())), true);
 
                //receives the message which the server sends back
//                InputStream inputStream = socket.getInputStream();
//
//                mBufferIn = new BufferedReader(new InputStreamReader(inputStream));
                //sendMessage("variable_ATS-Command: Hellow\n\n");
                mBufferOut = new PrintWriter(new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())), true);
 
                //in this while the client listens for the messages sent by the server
                /* получаем входной поток */
                try {
                    inputStream = socket.getInputStream();
                } catch (IOException e) {
                    System.out.println("Cant get input stream");
                }
 
 
                mBufferIn = new TcpClientBufferedReader(new InputStreamReader(inputStream));
 
                while (mRun) {
 
                    mServerMessage = mBufferIn.readLine(true);
 
                    if (mServerMessage != null && mMessageListener != null) {
                        Log.e("RESPONSE FROM SERVER 1", "S: Received Message: '" + mServerMessage + "'");
                        //call the method messageReceived from Activity class
                        mMessageListener.messageReceived(mServerMessage);
                    }
 
                }
                if (mServerMessage != null || mMessageListener != null) {
                    String message = "CON_OK";
                    EventBus.getDefault().post(new EventTcpMessage(message), "for_ConnectTask");
 
                    Log.e("RESPONSE FROM SERVER 2", "S: Received Message: '" + mServerMessage + "'");
                }
                mBufferOut = new PrintWriter(new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())), true);
 
            } catch (Exception e) {
                if (mRun) {
                    Log.e("TcpClient", "B: Error", e);
                } else {
                    Log.d("TcpClient", "BB: Closed", e);
                    if (!normal_close) {
                        String message = "CON_FAIL";
                        EventBus.getDefault().post(new EventTcpMessage(message), "for_ConnectTask");
                    }
                }
 
            }
Добавлено через 1 час 52 минуты
Укорочу вопрос - Как принять стринг который длиннее стандартного буфера.

Пробовал создать TcpClientBufferedReader как копию BufferedReader, но с измененным размером defaultCharBufferSize , однако, это ничего не дало.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.12.2016, 15:59
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Server->Client Обновление БД длинной строкой. Приходит не все отосланное (Программирование Android):

HttpWebRequest: ответ с сервера приходит в виде длинной рандомной строки - C#
Пишу клиент для браузерной онлайн игры. При отправке / принятии запросов столкнулся с проблемой. Суть очень проста: я формирую обычей...

Udp server-client. server ничего не принимает - Delphi
Клиент отправляет. сервер запускается, но чтение IdUDPServer1UDPRead не выполняется. подскажите пожалуйста почему сервер не читает. ...

Client-Server: GET request refused by the server - C Linux
Пишу Client-Server (Ubuntu), имеется рабочая версия для проверки. Запустил сервер, vitaly@vitaly-laptop:~/Desktop$ ./ft 10000 In...

Не приходит обновление с Win7 на Win10 - Windows 10
Уже 29 число а обновление так и не пришло на Windows 10, у меня сейчас стоит Windows 7 x86 Home Basic

client - server - client - JavaScript
Здравствуйте, я хочу розобратся как работает скрипт такого плана как вконтакте в сообщениях при нажатии кнопок на 1 машине, на второй...

Client-Server - Delphi
Добрый день. Собрался писать прогу для отправки сообщений. Видел много вопросов по этому поводу. мне непонятны пара моментов: если я...

1
powowstal
30 / 30 / 6
Регистрация: 21.03.2013
Сообщений: 367
23.12.2016, 17:24 #2
zoleg, возможно строка содержит символы переноса строки. Если принимается только часть, можно читать до конца данные и потом сформировать строку
Java
1
2
3
while ((mServerMessage = mBufferIn.readLine()) != null) {
 
                   mServerMessage+=mServerMessage;
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.12.2016, 17:24
Привет! Вот еще темы с ответами:

SERVER/CLIENT - Delphi
Всем саламчег!!! создал программу работающую по сети!!! есть одна загвоздка(((( при подключении клиента в сеть , необходимо чтобы у...

Client-Server - Delphi
Доброго времени. Сначала суть: на клиенте всего пара кнопок, сообщения или файлы отправлять не надо. на сервере, при нажатии на кнопку...

Client&Server - Delphi
Делаю программу типо Client&Server она посылает сообщение серверу когда в клиенте будет нажата кнопка. Но к серверу неполучается...

netty client-server - Java Сети
Здравствуйте. я создал сервер. // NUMTHBOSS threads max, Memory limitation: 1MB by channel, 1GB global, 100 ms of timeout ...


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

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

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