Форум: "Прочее";
Текущий архив: 2007.07.29;
Скачать: [xml.tar.bz2];
ВнизМожно ли в поток добавить данные? Найти похожие ветки
← →
Anatoly Podgoretsky © (2007-06-27 13:27) [80]> sergeyst (27.06.2007 12:17:16) [76]
Вряд ли этот чат будет.
← →
clickmaker © (2007-06-27 13:31) [81]
> [79] sergeyst © (27.06.07 13:19)
заведи рекорд
type TChatMessage = packed record
From: array[0..50] of char;
To: array[0..50] of char;
MessageSize: integer;
DateSent: TDateTime;
end;
это шапка сообщения
в MessageSize - Length(Edit.Text) к примеру - длина сообщения
Записывай в сокет (или по UDP) сначала этот заголовок, потом сам текст.
На приемной стороне читаешь заголовок, смотришь MessageSize и читаешь столько байт из сокета
← →
Сергей М. © (2007-06-27 13:51) [82]
> не знаю как принять поток из сокета
Чтобы принять поток, нужно знать его размер.
А метод SendStream не передает инф-цию о размере потока.
Значит эту инф-цию нужно передать "ручками", до вызова SendStream.
Тогда принимающая сторона, ожидающая поток, должна принять сначала эту инф-цию, и уж на основании ее посредством одного или более вызовов метода ReceiveBuf принять собственно данные, переданные в контексте ожидаемого потока
← →
sergeyst © (2007-06-27 13:53) [83]
> clickmaker © (27.06.07 13:31) [81]
А пакеты IdUDP сам собирает?
А если есть сообщения одновременно от нескольких пользователей?
> Anatoly Podgoretsky © (27.06.07 13:27) [80]
Почему?
Как сделаю, обязательно сообщу. Каким-нибудь вопросиком.
← →
sergeyst © (2007-06-27 13:57) [84]
> Сергей М. © (27.06.07 13:51) [82]
> одного или более вызовов метода ReceiveBuf принять собственно
> данные
Как потом собрать?
← →
Сергей М. © (2007-06-27 14:09) [85]
> Как потом собрать?
Записать в стрим-объект, последовательно в порядке поступления.
← →
sergeyst © (2007-06-27 14:19) [86]
> Записать в стрим-объект, последовательно в порядке поступления.
М-м-м... Насколько я знаю, UDP-пакеты могут приходить в любой последовательности. Или это совет для TCP?
← →
P (2007-06-27 18:13) [87]
> sergeyst © (27.06.07 14:19) [86]
По части только приема-передачи файла это уже 5 команд
1. Запрос на получение файла
2. Ответ с информацией о файле, его сеансовом-id, частях, имени и пр.
3. Ответ в виде id части файла, смещения и размера части файла
4. Ответ в виде закрытия передачи файла определённого ID.
5. Запрос на прекращение передачи частей файла.
← →
Сергей М. © (2007-06-28 08:20) [88]
> sergeyst © (27.06.07 14:19) [86]
> Или это совет для TCP?
>
Ну ты же речь-то завел о TServer/ClientSocket ? Так о каком же UDP ты рассуждаешь, если эти компоненты используют TCP ?
Страницы: 1 2 3 вся ветка
Форум: "Прочее";
Текущий архив: 2007.07.29;
Скачать: [xml.tar.bz2];
Память: 0.59 MB
Время: 0.048 c