![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Нужна помощь, совет [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]Пожалуйста посоветуйте что нибудь!