Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Нужна помощь, совет [D5, Win95/98, WinME]


romych ©   (2002-11-05 14:10:00) 

Помогите мне пожалуйста:
1) я пишу программу для общения по локалке, сообщение передаю по ЮДП а подтверждение, получение сообщения хочу подтвердить по сокету (для надежности) но проблема в том, что сокету иногда очень долго конектятся, притом конект, отсылка, разорвать соединение в одной процедуре:
ClientSocket1.Open;
ClientSocket1.Host:=a;
while Not ClientSocket1.Active do Application.ProcessMessages;
ClientSocket1.Socket.SendText(s);
ClientSocket1.Close;

Как работает Application.ProcessMessages скажем может ли пока идет этот цыкл принятся следуещее сообщение сообщение по ЮДП?
Что вообще делается при Application.ProcessMessages;
я думаю надо вставить в цикл, еще ограничение по времени, если скажем комп который отослал ЮДП выключен, вышли из программы, но сколько времени ждать в хорошей сети?


ppcat   (2002-11-05 20:10:00) [1]

procedure TfmSockets.Send;
begin
ClientSocket.Host:= Host;
ClientSocket.Active:= true;
end;

procedure TfmSockets.ClientSocketConnect(Sender: TObject;
Socket: TCustomWinSocket);
begin
ClientSocket.Socket.SendText(SendText);
ClientSocket.Close;
end;


RV   (2002-11-05 17:43:00) [2]

о,
была такая же трабла, причем именно на 9х

причем даже смешнее - ping 127.0.0.1 на некоторых машинах шел через 1-2 минуты
Вылечил методом редактирования файла hosts в директории с виндой


Song   (2002-11-05 17:34:00) [3]

У меня кстати Microsoft DNS Server не стоит вообще, но тем не менее как я уже написал всё работает почти всегда хорошо.


Song   (2002-11-05 17:32:00) [4]

С компами в одной рабочей группе очень быстро. С сервером - иногда (редко) минуты 2 бывает (максимум). Хотя и с клиентскими машинами тоже бывает такая фигня (что долго). Бывает что вообще виснет (наверно сами сокеты в исполнении борланда плохо работают с сеткой). Но в подавляющем большинстве случаев быстро. Также зависит от того какая загруженность сети. Если комп, к которому подключается другой компьютер занят работой с файлами (напряжённой), то тоже не быстро.


Digitman   (2002-11-05 17:31:00) [5]

ClientSocket1.Open;
ClientSocket1.Host:=a; // а это зачем ??????? почему не перед Open() ?
while Not ClientSocket1.Active do Application.ProcessMessages;
ClientSocket1.Socket.SendText(s);
ClientSocket1.Close;


С DNS у тебя проблемы, думаю.


Romych   (2002-11-05 16:43:00) [6]

Сеть хорошая, скажите сколько времени примерно конектятся у Вас сокеты, и все ли у меня правильно?


Song   (2002-11-05 16:12:00) [7]

Скорей всего дело в сети.


Romych   (2002-11-05 16:05:00) [8]

Пожалуйста посоветуйте что нибудь!


Наверх

Титульная страница Поиск, карта сайта Написать письмо