Форум программистов
 
Регистрация на форуме тут, о проблемах пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail, а тут можно восстановить пароль.

Как купить рекламу на форуме


Вернуться   Форум программистов > C/C++ программирование > C/C++ Сетевое программирование
Регистрация

Восстановить пароль
Повторная активизация e-mail


Ответ
 
Опции темы Поиск в этой теме
Старый 24.06.2014, 12:52   #1
tocsik
Пользователь
 
Регистрация: 09.09.2009
Сообщений: 39
По умолчанию Как отправлять ЦЕЛЬНЫЕ сообщения через socket

Здравствуйте. Функции write и read в библиотеке сокетов отправляют и получают какое-то рандомное количество байт!
Вот я, например, отправляю строку "a\n". Потом строку "b\n". Потом строку "c\n". А получаю(через read) строку "a\nb\nc\n".
Посоветуйте, как сделать по-нормальному? Т.е. отправлять по строке и получать тоже по строке. Спасибо.
tocsik вне форума Ответить с цитированием
Старый 24.06.2014, 13:29   #2
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,317
По умолчанию

Никак, протокол этого не гарантирует.
waleri вне форума Ответить с цитированием
Старый 24.06.2014, 13:39   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,840
По умолчанию

А ты перед строкой отправляй длину отправляемого. А на считке считывай в буффер, пока длина пришедшего не будет равна той что отправлена. Потом работай со считанным, очищай буфер и снова считывай следующий пакет данных. Я по крайней мере так делал.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 24.06.2014, 13:59   #4
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,003
По умолчанию

пишите прикладной протокол, транспортный протокол вам не обязан это гарантировать.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 25.06.2014, 06:32   #5
tocsik
Пользователь
 
Регистрация: 09.09.2009
Сообщений: 39
По умолчанию

Всем спасибо, тема закрыта.
tocsik вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме 20000 рублей в месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как заставить Delphi отправлять Self через регистр ecx? WhiskasTM Общие вопросы Delphi 4 20.03.2014 16:15
Socket не отсылает сообщения через SEND и не принимает vaan.sk C/C++ Сетевое программирование 1 22.06.2011 19:57
Как передать структуру через socket moiav Общие вопросы C/C++ 6 18.05.2011 15:27
IRC подключиться, отправлять, принимать сообщения. ZBEP Работа с сетью в Delphi 1 18.01.2010 14:17


Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru
Пеллетный котёл Emtas
котлы EMTAS