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

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.49 MB
Время: 0.039 c
15-1188560286
iXT
2007-08-31 15:38
2007.09.30
Осталость полтора часа...


3-1179995912
MZ
2007-05-24 12:38
2007.09.30
Скрыть записи в DBGrid е


3-1180071110
Emik
2007-05-25 09:31
2007.09.30
помогите с вставкою


1-1185019258
Makhanev Alexander
2007-07-21 16:00
2007.09.30
Совместимость с вистой...


15-1188055030
Cyrax
2007-08-25 19:17
2007.09.30
Посоветуйте дешёвого дистрибьютера компьютерной техники в Москве





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