![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Узнать тип сообщения, присланого TServerSocket [D6]
Death © (2007-01-19 18:28:00)Клиент (TClientSocket) посылает сообщение TServerSocket. Как узнать тип посланного сообщения (текстовое - SendText или данные-SendBuf)?
grisme (2007-02-02 19:16:00) [1]можно например первым байтом слать либо chr(1) либо chr(2). т.е. в зависимости от значения можем узнать )
а вообще это ненужная затея ) зачем?
SpellCaster (2007-02-02 13:43:00) [2]> Абсолютно не годится.
Почему же? По крайней мере, достаточное условие того, что пришли бинарные данные, можно отследить. Если встречаются байты до 32 (кроме спецсимволов), то можно предположить, что это бинарные данные. Разве не так?
tesseract (2007-01-25 21:36:00) [3]> [8] Сергей М. © (25.01.07 14:05)
>
> > SpellCaster (25.01.07 11:31) [7]
>
>
> Абсолютно не годится.
Как-то приходилось заниматься - на порт должны приходить бинарные данные, packed record. В одной сети у конкретного заказчика, что-то вылетало. Ну вываливаеться и всё. Выяснилось, что в ответ на запрос вместо бинарных данных от преобразователя Rs232-TCP, приходила какая-то фигня от какого-то самописного местного сетевого чата. Всегда проверяйте, что вам пришло в ответ !!!
Сергей М. (2007-01-25 16:12:00) [4]
> Дмитрий Белькевич © (25.01.07 16:11) [9]
да... уж ..
ПИО - он и в Африке ПИО)
Дмитрий Белькевич (2007-01-25 16:11:00) [5]>Абсолютно не годится.
Да, случаи всякие бывают.
>как узнать что именно послано - просто текстовая строка или некая структура
В общем случае - никак, байты, как известно, все одинаковые, не бывает каких-то специальных тестовых байт, или байт структуры.
В частных - можно какие-то идентификаторы добавлять.
Сергей М. (2007-01-25 14:05:00) [6]
> SpellCaster (25.01.07 11:31) [7]
Абсолютно не годится.
SpellCaster (2007-01-25 11:31:00) [7]> [5] Death © (22.01.07 13:48)
Анализом пришедших данных. Проверка на нетекстовые символы.
umbra (2007-01-22 14:22:00) [8]если клиент сам не говорит,текст єто или нет, то никак
Death (2007-01-22 13:48:00) [9]Перефразирую вопрос: как узнать что именно послано - просто текстовая строка или некая структура????
Dmitrij_K (2007-01-21 10:30:00) [10]
> Death © (20.01.07 17:57) [2]
Посмотри на код SendText() ( ScktComp.pas)
function .SendText(const s:string): integer;
begin
Result := SendBuf(Pointer(S)^, Length(S));
end;
Разницу между SendText и SendBuf видишь?
Я нет.
Palladin (2007-01-20 18:04:00) [11]
> [2] Death ©
а прикинь я текст пошлю методом sendbuff, а массив методом sendtext?
Death (2007-01-20 17:57:00) [12]
> Dmitrij_K
Текст - это то, что посылается методом SendText.
Данные - может быть структура или массив, посылаемые методом SendBuf
Dmitrij_K (2007-01-19 20:57:00) [13]Чем "текст" отличается от "данных"?