![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Передача данных: Клиент-Сервер, Сервер-Клиент
Noro © (2003-07-17 22:06:00)
Мне нужно послать серверу своё имя, Сервер в ответ должен выслать
,например, строку, клиент получив строку должен послать серверу запрос,
чтобы тот прислал файл, сервер шлёт файл, клиент сохраняет его у себя
на машине. Как это реализовать. Пробовал через TxxxxxxSocket, не
получилось. Возможно ли посылать запрос серверу и выполнять программу
только после того, как сервер пришлёт ответ? Помогите пожалуйтста!
Зарание благодарен.
Noro (2003-07-19 16:58:00) [1]
Спасибо за помощь, поробую сделать так.
Del (2003-07-19 04:05:00) [2]Когда серверу приходит запрос "Name&Имя" - он высылает "Size&xx" и сами данные... Как я понимаю у серверу не требуется больше ничего. Так же я понимаю следующее: изначально ReadData : boolean = false;
как только клиент получает "Size&",то ReadData := True, и при следющем получение данных, опять проверяем значение ReadData, если True значит это уже данные! И читаем их соответственно!
if not ReadData then
begin
str:= ReceiveText;
if pos("Size&",str)>0 then ReceiveBuf... (принимаем сообщение о размере)
end
else
begin
принимаем данные (файл)
end;
Noro (2003-07-19 03:14:00) [3]Полностью с Вами согласен. Пытаюсь работать по принципу:
Посылаю строку серверу Name&Имя клиент,мол, если так прислал клиент, то ему(клиенту) нужно выслать List : Tlist. Ищу по handle"у клиента и делаю SendText("Size&"+IntToStr(SizeOf(List)))
SendBuf(List,SizeOf(List))
Соответственно у клиента
str:string;
str:= ReceiveTest;
if pos("Size&",str)>0 then ReceiveBuf и т.д.
Как я понимаю, проблема в том, что я не могу заставить работать всё это дело послндовательно
Nick2000 (2003-07-18 17:19:00) [4]
у Тхххххх.Socket. - есть SendText/ReceiveText.
Вот и создавай на его базе свой протокольчик :)
А там смотри состояния коннекта и дальше....шли все что захочешь...
Digitman (2003-07-18 08:20:00) [5]
> Пробовал через TxxxxxxSocket, не
>
> получилось
Что не получилось ? Конкретно ?
> Возможно ли посылать запрос серверу и выполнять программу
> только после того, как сервер пришлёт ответ?
возможно