Тема: сокеты
Показать сообщение отдельно
  #2  
Старый 20.03.2011, 16:08
Аватар для dr. F.I.N.
dr. F.I.N. dr. F.I.N. вне форума
I Like it!
 
Регистрация: 12.12.2009
Адрес: Россия, г. Новосибирск
Сообщения: 663
Версия Delphi: D6/D7
Репутация: 26643
По умолчанию

Определить никак. Пересылается только "буфер" - поток байт. А SendText/ReceiveText - обертка над SendBuf/ReceiveBuf. Для пересылки смешанных данных - "приводи их к одному формату". Отправляешь сначала идентификатор пакета (думаю значения в 1 байт достаточно). либо текст, либо рекорд. если текст, то после идентификатора отправляешь длину сообщения. Если рекорд, то сразу данные. При получении смотришь идентификатор пакета, если рекорд, то принимаешь "буфер" по размеру рекорда. Если же текст, то получаешь длину строки, а потом саму строку. Все это делай через ReceiveBuf. Примерно так.
__________________
Грамотно поставленный вопрос содержит не менее 50% ответа.
Грамотно поставленная речь вызывает уважение, а у некоторых даже зависть.
Ответить с цитированием