Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.07.29;
Скачать: CL | DM;

Вниз

Можно ли в поток добавить данные?   Найти похожие ветки 

 
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;
Скачать: CL | DM;

Наверх




Память: 0.62 MB
Время: 0.024 c
15-1183110959
IMHO
2007-06-29 13:55
2007.07.29
VB.NET to Delphi


2-1183578350
Познающий
2007-07-04 23:45
2007.07.29
CreateProcessEx


2-1183615235
_Asph
2007-07-05 10:00
2007.07.29
Как в потомке запретить использование метода наследника?


15-1183046026
oldman
2007-06-28 19:53
2007.07.29
Кто-то спрашивал про Delphi на Wap...


15-1183403720
исследователь
2007-07-02 23:15
2007.07.29
Несоотвествие браузера