Форум программистов, компьютерный форум, киберфорум
C++: Сети
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 03.08.2015
Сообщений: 36

Отсылка множества сообщений

25.08.2015, 09:41. Показов 856. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте.

При работе сервера возникает непонятная мне ошибка - когда я пытаюсь отослать несколько сообщений последовательно, то вместо этого мне приходит что-то типа:

сообщение1сообщение2сообщение3
сообщение2сообщение3
сообщение3


Вот код отсылки:

C++
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
    sendto( s, "DDR test initiated", 64, 0, (PSA)&sin1, sizeof(sin1) );
    platform_delay(1000000);
    { 
        uint32_t index, value;
        int count;
            // Write a pattern
            for (index = start_address; index < end_address; index += 4) {
                *(volatile uint32_t *) index = (uint32_t)index;
            }
 
            // Read and check the pattern
            for (index = start_address; index < end_address; index += 4) {
 
                value = *(uint32_t *) index;
 
                if (value  != index) {
                    platform_write("platform_memory_test: Failed at address index = 0x%x value = 0x%x *(index) = 0x%x\n",
                            index, value, *(volatile uint32_t *) index); //platform_write
                    platform_errno = index;
 
                }
                count++;
                if (count%6710880 == 0)
                {
                    char perc;
                    ltoa(count, &perc);
                    sendto( s, ("DDR test:",perc,"% complete\n"), 64, 0, (PSA)&sin1, sizeof(sin1) );
                }
            }
                // Write a pattern for complementary values
            for (index = start_address; index < end_address; index += 4) {
                *(volatile uint32_t *) index = (uint32_t)~index;
            }
 
            // Read and check the pattern
            for (index = start_address; index < end_address; index += 4) {
 
                value = *(uint32_t *) index;
 
                if (value  != ~index) {
                    platform_write("platform_memory_test: Failed at address index = 0x%x value = 0x%x *(index) = 0x%x\n",
                            index, value, *(volatile uint32_t *) index);
                    platform_errno = index;
 
                }
            }
 
    }
        sendto( s, "DDR test results:", 64, 0, (PSA)&sin1, sizeof(sin1) );
    platform_delay(1000000);
    sendto( s, "DDR test passed", 64, 0, (PSA)&sin1, sizeof(sin1) );
    recvncfree( hBuffer );
В чем может быть ошибка? Как сделать так, чтобы сообщение возвращалось не склееным из нескольких? Заранее спасибо
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
25.08.2015, 09:41
Ответы с готовыми решениями:

Получение множества сообщений на сервер
Здравствуйте. Есть программа клиент-сервер. С помощью клиента осуществляется отправка сообщений на сервер. Сервер же, получает эти...

QUdpSocket чат. Отсылка/прием сообщений
Доброго времени суток, уважаемые форумчане! Пишу простенький чат. Описание идеи (пригодится для понимания структуры программы):Идея...

Отправка множества сообщений на mail.ru
Посылатор сообщений через мыло. В идеале - программа должны отправлять несколько писем подряд Что есть Код логина.(логинов несколько,...

1
 Аватар для Bend3r
150 / 137 / 35
Регистрация: 29.07.2012
Сообщений: 709
28.08.2015, 23:19
Вы когда отправляете, желательно отправлять строку состоящую из char, да бы завершающий символ был \0.
Это
C++
1
"DDR test initiated", 64
замените на
C++
1
2
char buffer[] = "DDR test initiated";
int length  = strlen(buffer);
Ну естественно теперь подставляйте переменную буфера и длину буфера.

А точно, на клиенте где вы получаете информацию вы должны обрубить строку поставив в элемента массива номер которого вы получаете функций recv ноль.
Аля
int index = recv(socket, &buffer, strlen(buffer));
buffer[index] = 0;

Мой код возможно не правильный, но идея правильная.

Добавлено через 4 минуты
И да, советую почитать данную книгу.
"Самоучитель игры на WINSOCK"
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
28.08.2015, 23:19
Помогаю со студенческими работами здесь

Отсылка почтовых сообщений из-под VB и Delphi
Люди! Как сформировать и отправить почтовое сообщение? Нужно ли при этом передавать какие-либо данные SMPT-серверу?

PHP Sockets отсылка сообщений всем клиентам
Недавно начал изучать PHP и пишу игру. Клиент на flash сервер на PHP. К серверу подключаются несколько клиентов и на сервере я сохраняю их...

Отсылка почты
Как программно послать почту?

Парсинг и отсылка
Пож-ста,подскажите,насколько тяжело сделать скрипт,скачивающий информацию по определееному IP,и передающий на другой адрес,причем в виде...

Отсылка текстового файла
Люди ,нужна помощь ,срочно.Есть ли скрипт или команда которая отсылала бы мне на почту текстовый файл!


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит переходные токи и напряжения на элементах схемы. . . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru