![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
В чем ошибка при сканировании портов ClientSoket-om?? [D6, Win95/98, WinME]
KyRo © (2004-02-28 12:51:00)Я сканирую порты таким кодом ;
Main.TestSocket.Host:='localhost';
Main.TestSocket.Port:=i;
Main.TestSocket.Active:=True;
if Main.TestSocket.Active then Мain.TestSocket.Active:=False;
и второй способ :
тоже самое но место актив - опен
и когда соединение установлено в событии отключаю
,а после в событии отключения перехожу на следующий порт.
И тот и другой метод выдает ошибку
Asynchronus soket eror 10061 при том на первом же порте.
Подскажите из за чего это может быть ??
Reindeer Moss Eater (2004-03-02 08:40:00) [1]Похоже правильно.
Но те порты на которых стоят службы и по идее должны работать
тоже выдаетса таже ошибка. В этот то и вся проблема
Ну кто тебе такое сказал?
Допустим я - какая-то служба и ты открыл соединение с моим открытым портом.
Но я жду некое приветсвие от входящих клиентов.
А если его нет - на мороз.
DelphiN! (2004-02-29 13:10:00) [2]procedure TForm1.ClientSocket1Error(Sender: TObject;
Socket: TCustomWinSocket; ErrorEvent: TErrorEvent;
var ErrorCode: Integer);
begin
memo3.Lines.Add('Client status: Error: '+inttostr(errorcode));
errorcode := 0;
end;
Verg (2004-02-29 10:38:00) [3]
> KyRo © (28.02.04 21:38) [14]
> Похоже правильно.
> Но те порты на которых стоят службы и по идее должны работать
>
> тоже выдаетса таже ошибка. В этот то и вся проблема
Это у тебя ошибка в программе. Где-то в районе 17-18 строки.
Проблема только в этом. OnError не обрабатываешь скорее всего.
KyRo (2004-02-28 21:38:00) [4]Похоже правильно.
Но те порты на которых стоят службы и по идее должны работать
тоже выдаетса таже ошибка. В этот то и вся проблема
Reindeer Moss Eater (2004-02-28 17:10:00) [5]Соединяемся с портом который не открыт.
Получаем исключение с указанием конкретного кода, говорящее, что порт не открыт и соединение не может быть установлено.
Это по твоему ошибочное поведение? Это ошибка в реализации класса?
А на самом деле не должно быть никакого исключения и код возврата должен быть NO_ERROR в подобной ситуации?
Я тебя правильно понял?
KyRo (2004-02-28 17:02:00) [6]Asynchronus soket eror 10061
Reindeer Moss Eater (2004-02-28 16:27:00) [7]С какой ошибкой?
KyRo (2004-02-28 16:09:00) [8]А что с ошибкой как перейти в синхронный режим ?
Reindeer Moss Eater (2004-02-28 15:38:00) [9]Нити помогут.
Но пока полоса пропускания интерфейса не исчерпается.
И пока переключение между нитями не будет тормозить сильнее, чем другие компонеты
KyRo (2004-02-28 15:34:00) [10]Ну а есле сделать много нитей и сканировать ими , а то я проверил на сканирования 65 тис портов уйдет не меньше часа.
И еще при сканировании 200 портов у меня ClientSoket все время выдавал ошибку - это нормально или нет ???
Reindeer Moss Eater (2004-02-28 14:36:00) [11]Ровно настолько быстрее,
насколько быстрее будет твоя реализация инкапсуляции WinSock API чем реализация программистов из Borland.
KyRo (2004-02-28 14:27:00) [12]Счас попробую.
Еще вопрос для сканирования правильно ли использовать
ClientSoket насколько быстро это будет
или лучше использовать
WinSock.
Reindeer Moss Eater (2004-02-28 14:18:00) [13]Посмотри на var параметр передаваемый в обработчик OnError.
Нажми F1.
Подумай, что будет, если тому параметру присвоить значение 0.
KyRo (2004-02-28 13:58:00) [14]Начались загадки ?? :) Скоро в хокку ответы будут.
Есле ошибка возникает то обработчик на нее писать в onError ??
как я понял и писать что порт закрыт.
А программа в таком случае не будет выкидыватся ??
Или что то еще нужно сделать что бы прога при возникновении этой ошибки не прикрощала работу ??
Reindeer Moss Eater (2004-02-28 13:36:00) [15]А по твоему это странно?
А по твоему это не нужно?
KyRo (2004-02-28 13:27:00) [16]Оно то может и не ждет но мне нужно проверить все порты на открытость.
Что для этого сделать обработчик этой ситуации и записывать что этот порт закрыт ??
Verg (2004-02-28 13:06:00) [17]Это из-за того, что
WSAECONNREFUSED
Т.е. на этом порту никто не ждет входящего соединеия.