Форум программистов, компьютерный форум, киберфорум
Наши страницы
C для начинающих
Войти
Регистрация
Восстановить пароль
 
kanerach
0 / 0 / 0
Регистрация: 09.11.2015
Сообщений: 10
1

Клиент/Сервер - передача текста любой длины

06.01.2016, 20:43. Просмотров 299. Ответов 1
Метки нет (Все метки)

Нужно, чтобы сервер посчитал количество символов в строке.
Допустим, сервер принял строку, посчитал количество символов, как теперь послать клиенту именно количество символов? У меня получается только послать саму строку, определенного размера.
А уже в клиенте записать результат функции recvfrom в определенную переменную, т.е. кол-во полученных байт.
Но как передать именно сам размер строки, а не строку?

Добавлено через 9 минут
Я сделал так.
Это происходит на стороне сервера:

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
   
        for (i = 0; line[i] != '\0'; i++)                                                    
        {
            string_size++;
        }                                                                               
        str = (char *) calloc ((string_size), sizeof(char));
        for (i = 0; i < string_size; i++)                                                    
        {
            str[i] = line[i];
        }
        str[i] = '\0';
        if (sendto(sock, str, string_size, 0, (struct sockaddr *) &cliaddr, clilen) < 0) 
        {
            perror("Send"); 
            closesocket(sock);
            return;
        }
А это на стороне клиента:
C
1
2
3
4
5
6
7
8
9
        if ((string_size = recvfrom(sock, line, LEN, 0, (struct sockaddr *) &servaddr, &servlen)) < 0) 
        {
            perror("Receive");
            closesocket(sock);
            return;
        }                                                                               
        printf("\nRow %s contains %d symbols\n", line, string_size); 
        printf("\n");                
    }
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.01.2016, 20:43
Ответы с готовыми решениями:

Определить симметричность произвольного текста любой длины
Разработать программу, определяющую симметричность произвольного текста любой длины. Текст всегда...

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

Передача текста в клиент-сервер
Сетевая игра &quot;Пять в ряд&quot;(по типу крестики-нолики). Есть клиент и есть сервер. Заданы IP 127.0.0.1...

Передача файлов клиент-сервер-клиент используя Socket
Добрый день! Срочно нужна помощь. Мне нужно передать файлы с клиента на сервер и обратно,...

Определить симметричность произвольного текста любой длины
Определить симметричность произвольного текста любой длины. Текст должен оканчиваться точкой....

1
kolobok0
46 / 46 / 9
Регистрация: 24.01.2010
Сообщений: 225
08.01.2016, 03:17 2
сервер:
со 2 по 5 строки вы что сделали? посчитали кол-во элементов line до того, как там встретите ноль.
вопрос...почему в рукопашную? почему не использовали опыт ранее накопленный человечеством?

далее вы вызываете калок с посчитанным кол-вом, и размерностью чар. поимели указатель. дзынь-дзынь!!! это парна функция. что надо обязательно делать?

далее вы в рукопашную копируете ваш line в выделенный кусок памяти. и добавляете нуль. почему в рукопашную опять? и если вам так уж приспичел нуль (хотя есть общая длина) - почему для него отдельный подход к снаряду делаете?

далее вы вызываете сенд-ту, по сокету, указатель на буффер передачи(у вас это новый выделенный кусок в памяти со скопированной туда строкой), далее размер вашей полезной строк(ну типа бещ нуля на хвостике), и далее ...

я озвучил что вы написали. если не согласны с логикой - меняйте всё не просто, а очень просто...

(круглый)
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.01.2016, 03:17

Определить симметричность произвольного текста любой длины
{Определить симметричность произвольного текста любой длины. Текст должен оканчиваться точкой....

Шифрование методом перестановки с заданным ключом текста любой длины
здравствуйте прошу помочь с исправлением кода #include &lt;iostream&gt; #include &lt;string&gt; #include...

Передача файлов клиент-сервер
Здравствуйте. Мне нужно организовать передачу файла из одной папки в другую. Клиент отправляет,а...


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

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

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