Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Сети";
Текущий архив: 2003.09.18;
Скачать: [xml.tar.bz2];

Вниз

Передача данных: Клиент-Сервер, Сервер-Клиент   Найти похожие ветки 

 
Noro   (2003-07-17 22:06) [0]

Мне нужно послать серверу своё имя, Сервер в ответ должен выслать
,например, строку, клиент получив строку должен послать серверу запрос,
чтобы тот прислал файл, сервер шлёт файл, клиент сохраняет его у себя

на машине. Как это реализовать. Пробовал через TxxxxxxSocket, не

получилось. Возможно ли посылать запрос серверу и выполнять программу

только после того, как сервер пришлёт ответ? Помогите пожалуйтста!

Зарание благодарен.


 
Digitman   (2003-07-18 08:20) [1]


> Пробовал через TxxxxxxSocket, не
>
> получилось


Что не получилось ? Конкретно ?


> Возможно ли посылать запрос серверу и выполнять программу
> только после того, как сервер пришлёт ответ?


возможно


 
Nick2000   (2003-07-18 17:19) [2]

у Тхххххх.Socket. - есть SendText/ReceiveText.
Вот и создавай на его базе свой протокольчик :)

А там смотри состояния коннекта и дальше....шли все что захочешь...


 
Noro   (2003-07-19 03:14) [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 и т.д.

Как я понимаю, проблема в том, что я не могу заставить работать всё это дело послндовательно


 
Del   (2003-07-19 04:05) [4]

Когда серверу приходит запрос "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 16:58) [5]

Спасибо за помощь, поробую сделать так.



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

Форум: "Сети";
Текущий архив: 2003.09.18;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.058 c
7-58925
ctapik
2003-07-07 20:03
2003.09.18
Как остановить работу с ком портом?


3-58598
Юлия
2003-08-26 12:44
2003.09.18
Как перехватить ошибку?


1-58638
Dimich1978
2003-09-05 12:39
2003.09.18
Сворачивание окон


14-58877
Golovanov
2003-08-29 20:08
2003.09.18
Вниманию пользователей провайдера МТУ-интел


7-58955
CKOTu
2003-07-02 17:26
2003.09.18
Как прочитать значение REG_MULTI_SZ?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский