Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

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

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

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.06.2014, 13: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, 14:29   #2
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,493
По умолчанию

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

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

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

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


Купить рекламу на форуме - 42 тыс руб за месяц

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

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


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