![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Socket и Stream [D7, WinXP]
Ural_angel © (2007-02-02 09:19:00)Проблема такая:
В ServerSocket передаю передаю поток (ClientSocket.Socket.SendStream(MyStream))...
... как его принять в ClientSocket ???
medved_68 (2007-02-02 16:56:00) [1]
> только возникла еще одна ситуация... Как узнать размер передаваемых
> данных???
Ural_angelя делал так:
varВ результате мы имеем в начале передаваемого потока размер данных которые хотим передать. Ну а на приеме вытягиваем из буфера первые 8 байт в переменную, остальное сливаем в поток и в процессе приема делаем сравнение размера потока с переменной.
pot1:TMemoryStream;pot2:TFileStream;ax:int64;
begin
pot1:=TMemoryStream.Create;
pot2:=TFileStream.Create('c:\myfile.txt,fmOpenRead);
ax:=pot2.Size;
pot1.WriteByffer(ax,8);//Забиваем размер
pot1.CopyFrom(pot2,ax);
pot2.Free;
........
.......
SpellCaster (2007-02-02 13:38:00) [2]> Как узнать размер передаваемых данных???
Передавать сигнатуру конца пакета
Сергей М. (2007-02-02 09:49:00) [3]
> Как узнать размер передаваемых данных?
Никак, если передающая сторона сама не скажет об этом принимающей стороне.
Ural_angel (2007-02-02 09:48:00) [4]Спасибо!!!
... только возникла еще одна ситуация... Как узнать размер передаваемых данных???
Сергей М. (2007-02-02 09:34:00) [5]ReceiveBuf