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

Вниз

Как послать TMemoryStream через сокеты?   Найти похожие ветки 

 
Sour ©   (2002-05-02 11:12) [0]

Делаю так:
TClientSocket:
S := TMemoryStream.Create;
S.Write(...);
....Записываю что-то......
ClientSocket1.Socket.SendBuf(S, S.Size);

На OnClientRead на TServerSocket:
S := TMemoryStream.Create;
Socket.ReciveBuf(S, Socket.ReciveLength);
S.read(...);
И ничерта не получается в S находится какая-то ерунда!
На Строчке S.Read ошибка Invalid pointer operation!
Даже если посылать с клиетна SendStream(S), тогда на сервере не возникает событие OnClientRead!


 
Song ©   (2002-05-02 12:38) [1]

А что Вам мешает читать принятные байты через ReceiveText в TServerSocket


 
Malder ©   (2002-05-02 14:00) [2]

Sour, "ClientSocket1.Socket.SendBuf(S, S.Size);" - по моему, так нельзя. Поток - это вам не буфер. Странно, что вообще что-то отправляется.
А чтобы послать поток нужно использовать SendStream. Но чтобы работать с сокетами как с потоками нужно поставить...
лучше процитирую:
"ctBlocking - синхронная (одновременная) передача данных. События OnRead и OnWrite не работают. Этот тип соединения полезен для организации обмена данными с помощью потоков (т.е. работа с сокетом как с файлом);"



Страницы: 1 вся ветка

Текущий архив: 2002.07.15;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.011 c
4-47888
IGORka
2002-05-15 14:27
2002.07.15
Как получить список компьютеров в локалке (Win 2000)


3-47201
stalexo
2002-06-18 21:19
2002.07.15
Порядковый номер записи


7-47855
dron-hack
2002-04-11 00:32
2002.07.15
Программирование Пультов ДУ устройств


1-47252
Skywalker
2002-06-27 12:13
2002.07.15
Алгоритм деления


3-47191
Skrip
2002-06-19 14:00
2002.07.15
Файлы в ДБ