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

Вниз

Слушатель порта   Найти похожие ветки 

 
VRSB ©   (2007-08-31 11:49) [0]

Такая проблема:
Есть сервер с которого может быть отправлен текстовый файл. Также к серверу подключено множество клиентов. Для всех клиентов определен один IP адрес (система тонкий-клиент). Все клиенты отличаются друг от друга только портом. Например, 111.111.111.111:хххх, где хххх - порт. Задача: необходимо слушать порт, до тех пор, пока в нем не появится файл. Потом этот файл загрузить и сохранить на диске клиента. Пожалуйста, предложите какие-нибудь варианты.


 
Сергей М. ©   (2007-08-31 11:53) [1]


> слушать порт


Порт вообще-то "слушает" сервер.
А ты о ком ведешь речь ?


 
VRSB ©   (2007-08-31 11:57) [2]


> > слушать порт
>
>
> Порт вообще-то "слушает" сервер.
> А ты о ком ведешь речь ?

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


 
Сергей М. ©   (2007-08-31 12:02) [3]


> слушать порт, до тех пор, пока в нем не появится файл


Во-первых, в порту нет никаких файлов. Порт - это порт, а файл - это файл, у них разные определения и разные функциональные задачи.

Поясни, что ты подразумеваешь под сервером и его клиентами. Это приложения твоей разработки ?


 
VRSB ©   (2007-08-31 12:12) [4]

Сергей М. , мы гоням воду в пустую. Мне надо, чтобы клиент ждал файла. И только тогда когда он появился бы на сервере в определенном каталоге, клиент мог бы его забрать. Каким образом, он будет ждать файла мне мягкое говоря наплевать. Главное, чтобы в момент ожидания файла сеть не была занята тысячами запросами: "А нет ли в каталоге такого файла?". Давайте конструктивнее.


 
Сергей М. ©   (2007-08-31 12:15) [5]


> мы гоням воду в пустую


Я тоже так думаю. Ты не хочешь отвечать на уточняющий контрвопрос, а я не хочу телепатировать.


 
VRSB ©   (2007-08-31 12:29) [6]

Хорошо. Данные должны передаваться по протоколу TCP/IP. От сервера к клиенту, НЕ по запросу клиента, а по инициативе сервера. Как мне это реализовать, подскажите пожалуйста.


 
Сергей М. ©   (2007-08-31 12:32) [7]

Т.е. на самом деле никакого "сервера" и "клиента" пока не существует, и ты как раз озабочен их разработкой, так ?


 
VRSB ©   (2007-08-31 12:42) [8]

Существует сервер и множество клиентов. На клиентских машинах висит программа, которой нужен файл, который может сформироваться только на сервере. Мне нужно передать файл от сервера к клиенту.


 
Сергей М. ©   (2007-08-31 12:46) [9]

И вновь ничего не понятно.


> На клиентских машинах висит программа


Твоя программа ?


> сформироваться только на сервере


Программа-сервер твоя ?


 
VRSB ©   (2007-08-31 13:07) [10]

А, теперь я все понял. Значит так: на клиенте есть программа МОЯ. Которая работает с файлом определенным образом (не важно каким).
Сервер - физический. комп. к которому подключены физические машины. Проблема: вся сеть, завязана на системе тонкий-клиент - Маленькие компьютеры, спец.разработаны для офисной работы. У тонкого клиента нет IP адреса, точнее есть но на всех тонкий клиентов всего один IP. Разным будет только порт. На сервере установлена программа, которая формирует файлы (не важно как). Задача: получить от программы с сервера файл в программу клиента и обработать.


 
Сергей М. ©   (2007-08-31 14:37) [11]

Вот теперь более-менее ясно.

Теперь ответь на вопрос - имеешь ли ты возможность разработать свои программу-клиент и программу-сервер и разместить их должным образом соответственно на машинах-клиентах и машине-сервере ?


 
grisme ©   (2007-09-01 01:05) [12]

каждому "клиенту"(в твоем понятии) программа-сервер в лыжные палки, а тот, что "сервер" - есть клиент :o) вот пускай "сервер" устанавливает соединения с "клиентами"(на общий ип и частный порт, для каждого) и передает им файл :o)


 
Германн ©   (2007-09-01 01:41) [13]


> grisme ©   (01.09.07 01:05) [12]
>
> каждому "клиенту"(в твоем понятии) программа-сервер в лыжные
> палки, а тот, что "сервер" - есть клиент :o) вот пускай
> "сервер" устанавливает соединения с "клиентами"(на общий
> ип и частный порт, для каждого) и передает им файл :o)
>

Имхо, твой выстрел "в молоко". Нет у автора сабжа никаких программ на "сервере" и, скорее всего, не предвидится.
Но пусть он сначала ответит на
> Сергей М. ©   (31.08.07 14:37) [11]


 
Anatoly Podgoretsky ©   (2007-09-01 09:48) [14]

> grisme  (01.09.2007 01:05:12)  [12]

Сервера не устанавливают соединения с клиентами, это прерогатива клиента, если кто то подобное делает, то он не сервер, а клиент.


 
Anatoly Podgoretsky ©   (2007-09-01 09:49) [15]


> Для всех клиентов определен один IP адрес

А это что за бред, или клиент установлен во множестве на одном компьютере?


 
VRSB ©   (2007-09-03 09:11) [16]

Отвечаю всем и последний раз и закрываю этот бред, который ВЫ ТУТ развели:
IP адрес один потому, что терминальный сервер он один, у него один IP адрес. К терминальному серверу коннектятся терминальный клиенты (тонкие клиенты). На тонком клиенте нету ДАЖЕ ОС. Там жестко прописано в микросхеме "законнектится к ОС на терминальном сервере" и все. Да IP адреса для каждого терминального клиента будут виндой присвоены, но толку никакого, т.к. на тонком клиенте нет винта. На терминальном сервере может быть разным только порт у IP адреса. Таким образом, посылая данные с еще одного сервера (допустим BBB) на терминальный сервер мы укажем IP 111.111.111.111:xx, где хх - порт. Смысл, во всем этом - адресовать данные c (BBB) к каждому терминальному клиенту. Вот и все в чем весь смысл, легко и просто.
А вот,что я придумал в отличие от вас всех:
NMStrmServ1 - компонент у которого можно указать порт, а хост даже оставить пустым и пару строк кода:
procedure TForm1.NMStrmServ2MSG(Sender: TComponent; const sFrom: String;
 strm: TStream);
var
 MyStream: TMemoryStream;
begin
 MyStream := TMemoryStream.Create;
 MyStream.CopyFrom(Strm, NMStrmServ1.BytesTotal);
 MyStream.SaveToFile("D:\new_file_20005.txt");
end;

Создавая нудное количество компонентов и указывая для каждого компонента свой порт можно получить то, что мне нужно. Прога ждет с каждого порта данные.
Все тема закрыта, не пишите сюда больше.


 
Сергей М. ©   (2007-09-03 09:19) [17]


> NMStrmServ1 - компонент у которого можно указать порт, а
> хост даже оставить пустым


А мужики-то и не знают)

Мда ..

LMD, одним словом)


 
Anatoly Podgoretsky ©   (2007-09-03 09:29) [18]

> VRSB  (03.09.2007 09:11:16)  [16]

Действительно, больше писать нет смысла.



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

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

Наверх




Память: 0.51 MB
Время: 0.023 c
8-1164884405
POL~LITRA
2006-11-30 14:00
2007.09.30
Движение планет вокруг солнца


10-1137315632
_Ruslan_
2006-01-15 12:00
2007.09.30
Почему при создании OLE в DLL вызывается ошибка?


11-1172065520
mixail_shar
2007-02-21 16:45
2007.09.30
как провести UPDATE


3-1177057304
Amid
2007-04-20 12:21
2007.09.30
Цикл по всем записям ADODataSet


2-1188571097
sashap
2007-08-31 18:38
2007.09.30
Отправка символа другому окну