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

Вниз

Смена портов NMMsg и NMStrm   Найти похожие ветки 

 
Andrew2   (2002-08-05 13:03) [0]

Не хотят у меня порты меняться на этих компонентах. Как скомпилиш например с тем что по умолчанию 6711 так и работают. Присваиваю другой номер - connection failed, возвращаю родной - снова нормально. Можно конечно с другим компилировать, но надо-бы в процессе работы как-то менять, чтоб к другими такими-же програмками конектиться.
Спасибо.


 
Digitman   (2002-08-05 13:08) [1]

сервер на каком порту "слушает" ? Должен слушать на том же, попытку коннекта к которому осуществляет клиент


 
Andrew2   (2002-08-05 15:58) [2]

Меняю порты с обоих сторон. Когда возвращаю в исходное состояние - конект возобновляется.
(спасибо digitman за быстрый ответ, боюсь мой промежуток в 5 часов уже убил этот диалог :(


 
Andrew2   (2002-08-05 16:29) [3]

Мне тут даже советуют убивать и создавать заново эти компоненты уже с другими портами :)


 
Digitman   (2002-08-05 16:29) [4]

при смене порта на серверной стороне не забываешь вноыь активизировать его (сервер) ?


 
Andrew2   (2002-08-05 16:45) [5]

Не нашёл в структуре NMStrm активацию/деактивацию.
Попробовал disconnect перед сменой портов - не преуспел.


 
Digitman   (2002-08-05 17:19) [6]

TNMStrm не имеет отношения к серверной стороне : это - клиент.

Что используешь на серверной стороне ?


 
Andrew2   (2002-08-06 08:16) [7]

NMStrmServ


 
Andrew2   (2002-08-06 08:24) [8]

Это я для работы утилиту такую написал, где на моей машине клиент с NMMsg и NMStrmServ, а на другом конце агент с NMMSGServ и NMStrm. По MSG я управляю агентом, а он мне по STRM шлёт файлы. Возникла необходимость работать с несколькими агентами, а со сменой портов такая неприятность :(


 
Digitman   (2002-08-06 09:40) [9]

Приведи код.


 
Andrew2   (2002-08-06 10:05) [10]

Мой римоут менеджер запрашивает файл

procedure TForm1.Getfile1Click(Sender: TObject);
begin
LogFileName:=ListBox1.Items.Strings[ListBox1.ItemIndex];
NMMsg1.FromName := "file";
NMMsg1.PostIt(LogFileName);
MemoEvents.Lines.Add("Asking for file "+LogFileName);
end;

Агент отвечает

procedure TForm1.NMMSGServ1MSG(Sender: TComponent; const sFrom,
sMsg: String);
var
MyFStream: TFileStream;
f,f_old,f_update: Textfile;
sr,sr_old: TSearchRec;
flag,FileAttrs: Integer;
s,s2: string;
Bool:Boolean;
begin

if pos("file",sFrom)>0 then
begin
LogFileName:=Copy(sMsg,Pos(":",sMsg)+1,Length(sMsg)-Pos(":",sMsg));
EditLogFileName.Text:=LogFileName;
ListBoxFiles.ItemIndex:= ListBoxFiles.Items.IndexOf(LogFileName);
if (LogFileName="..") or isDir(LogFileName) then
begin
ListBoxFilesDblClick(Form1);
ReadList(CurrDir);
NMStrm1.FromName := "list:"+CurrDir;
MyFStream := TFileStream.Create("list.txt", fmOpenRead);
try
NMStrm1.PostIt(MyFStream);
finally
MyFStream.Free;
end;
MemoEvents.Lines.Add("list sent");
end
else
begin
NMStrm1.FromName := "file:"+LogFileName;
MyFStream := TFileStream.Create(LogFileName, fmOpenRead);
try
NMStrm1.PostIt(MyFStream);
finally
MyFStream.Free;
MemoEvents.Lines.Add("file sent");
MemoFile.Lines.LoadFromFile(LogFileName);
MemoFile.Lines.SaveToFile("Old_log.txt");
end;
end;
end;
end;

админ ловит файл

procedure TForm1.NMStrmServ1MSG(Sender: TComponent; const sFrom: String;
strm: TStream);
var
c,f,i: integer;
MyFStream: TFileStream;
f_log,f_update: TextFile;
s: string;
begin
MemoEvents.Lines.Add("From :: "+sFrom);

if Pos("file",sFrom)>0 then
begin
LogFileName:=Copy(sFrom,Pos(":",sFrom)+1,Length(sFrom)-Pos(":",sFrom));
If FileExists(LogFileName) then DeleteFile(LogFileName);
MyFStream := TFileStream.Create(LogFileName, fmCreate);
try
MyFStream.CopyFrom(strm, strm.size);
finally
MYFStream.Free;
end;
MemoFile.Lines.LoadFromFile(LogFileName);
GroupBox2.Caption:=LogFileName+" "+DateTimeToStr(Now);
MemoEvents.Lines.Add("received file ""+LogFileName+""");
end;

end;


 
Digitman   (2002-08-06 10:18) [11]

Я что-то не вижу, где, в какой момент и как активизируется NMMSGServ1 и NMStrmServ1MSG, т.е. серверные стороны


 
Andrew2   (2002-08-06 10:34) [12]

Сами наверно :)
Я больше ничего с ними не делаю.


 
Digitman   (2002-08-06 10:54) [13]

Нет, ну а метод TPowersock.Listen() кто за тебя будет вызывать ? Каким образом серверная сторона может быть активизирована без вызова этого метода ?

Да еще и с Accept() - тот же вопрос : как ты акцептируешь и акцептируешь ли явно входящие кл.запросы на соединение ?


 
Andrew2   (2002-08-06 10:58) [14]

Пища для размышлений...
Поковыряюсь в этом направлении
Спасибо за помощь :)


 
Sterh-By   (2002-08-07 12:51) [15]

Вся суть в кривости компонент FastNet.
Выдержка из хелпа для TNMStrmServ:

property Port: Integer;
...
Accessibility: Runtime*, Designtime

Notes:
* In the case of the TNMGeneralServer, the Port property must be set during designtime.

Динамически создать об"єкт не удалось :(



 
Digitman   (2002-08-07 13:01) [16]

>Sterh-By

Почему сразу - "в кривости" ? Разработчик четко обозначил ограничения, с чем это связано - это уже иной вопрос.

А автор как раз, как я понял, и подразумевает смену порта именно в design-time. Нет ничего говорящего о смене порта в run-time и в приведенном им коде.


 
Sterh-By   (2002-08-07 13:35) [17]

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

Я, вот пытаюсь использовать Indy для этих целей, но не могу в"ехать, как задать таймауты для функций чтения/записи.
Имеются в виду компоненты IdTCPServer & IdTCPClient.
Использую ф-ии TIdTCPConnection.ReadBuffer & TIdTCPConnection.WriteBuffer

Может кто подскажет ?


 
Digitman   (2002-08-07 14:27) [18]

Та ведь - просто это, как "дважды два" !

Исходники-то есть перед глазами ? Думаю, что - должны быть, иначе - на кой черт такой Indy нужен.
Ну так глянь в них да посмотри, есть ли где-либо при инициализации гнезда строчка, вызывающаяя WinsockAPI-ф-цию SetSockOpt().

Если есть, смотри, откуда берутся параметры для установки опций
SO_RCVTIMEO int Receive time-out
SO_SNDTIMEO int Send time-out

Если - нет, можешь считать, что Indy не менее "кривой", чем FastNet.




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

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

Наверх





Память: 0.49 MB
Время: 0.009 c
1-21141
Serg455
2002-09-25 23:03
2002.10.07
Кнопка в IE


6-21166
VID
2002-08-05 15:39
2002.10.07
Почему идёт сразу два покета ?


14-21240
AL2002
2002-09-12 10:52
2002.10.07
Люди, вы пользуетесь прогой Offline Explorer Pro 2.4?


8-21155
Вовчик
2002-06-06 19:55
2002.10.07
ЛЮЮЮДИ


3-20909
@andrew
2002-09-16 18:07
2002.10.07
ПРИВЕТ ВСЕМ!!! Очень нужен совет. Стратегический.





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