Главная страница
    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.012 c
1-58705
Andy BitOff
2003-09-08 15:44
2003.09.18
Цвет


1-58690
DProg
2003-09-04 16:31
2003.09.18
Массивы Components, Controls. Изменение порядка следования


1-58732
race1
2003-09-07 14:31
2003.09.18
tscrollbox


7-58921
MakNik
2003-07-08 09:13
2003.09.18
PostMessage(Wnd,WM_Close,0,0);


3-58594
3APA3A
2003-08-26 14:17
2003.09.18
Выбрать все записи в таблице





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский