Форум: "Сети";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.04.11;
Скачать: [xml.tar.bz2];




Вниз

Ну не хочет Он работать!!!!! 


Arlekin   (2002-01-24 17:56) [0]

У меня вот такая проблема. Есть ClientSocket, он типа должен делать коннект на порт (без разницы на сервер или нет). Если порт открыт, то все Ок. Если нет - то все равно Ок, закрытый порт тоже кое-что значит.
Из приведенного выше Вам должно быть понятно, что Это сканнер портов. Вот.
Так он работает (Если проверяешь один порт). А вот когда даешь ему список из StrigList`а, то вылазеет ОШИБКА " Windows Soket Error ( 10049) on API connect". Жмешь Ок и даешь еще раз сканнировать появляется другая - " Windows Socket Error( 10022), on API"WSACancelASyncRequest"".
Ну так объясните мне почему проверка одного порта проходит успешно, а вот нескольких подряд нет? Я пробовал ставить Sleep на 1000 и на 10000, но эффект нулевой. В чем здесь дело?

Помогите плиз....



Digitman   (2002-01-24 18:19) [1]

"Из приведенного выше" Нам ничего непонятно, к примеру ) Особенно когда еще и StringList ни к селу ни к городу упомянут, да еще кто-тог куда-то там "вылаз еет".
А понятно станет лишь когда всю это ты объяснишь на Паскале, приведя соотв. фрагменты кода. Тогда и рекомендация конкретная будет)



Arlekin   (2002-01-24 18:39) [2]

DigitMen`y


Да че тут не понятного???? Я прошу обяснения на эти долбанные ошибки.

А лучше зайди в Чат!!!



Digitman   (2002-01-24 18:49) [3]

Мне гораздо проще изъясняться Паскаль-текстом , нежели повторять свои контрвопросы в чате, в надежде , что там ты прокомментируешь свой вопрос детальнее.



Digitman   (2002-01-24 18:52) [4]

Кр. того, ты даже не удосужился, насколько я понял, поискать в Делфи текстовое описание кодов получаемых ошибок.



$hade   (2002-01-25 14:36) [5]

в событии ClientSocketError - ErrorCode:=0;



$hade   (2002-01-25 14:38) [6]

Должно помочь... я писал сканер...давно...и такие же глюки были...а щя точно не помню что я делал...))



Arlekin   (2002-01-29 18:45) [7]

$hade.
Слушай. А ErrorCode:=0; не работает.
Вернее работает, но на ошибку соединения.

Ладно Даю полное описание.


var
Main: TMain;
MemoPorts:TStringList;
Number:Integer;
implementation

{$R *.DFM}

Procedure TMain.Scan(PortNum:Integer);
begin
Application.ProcessMessages;
PortScan.Port:=PortNum;
Try
PortScan.Open;
Except
on ESocketError do
Begin
PortScan.Active:=False;
Portscan.ClientType:=ctNonBlocking;
PortScan.Open;
Memo.Items.add("<"+PortScan.Host+">"+" Port "+Inttostr(PortScan.port)+" : Not found");
End;
End;
PortScan.Close;
End;



procedure TMain.btStartClick(Sender: TObject);
Var I,Port:Integer;
zaq:String;
Begin
btStart.Enabled:=False;
PortScan.Host:=Host.Text;
For i :=0 to ChlBox.Items.Count-1 do
If Chlbox.Checked[i] Then
Begin
zaq:=ChlBox.Items.Strings[i];
Port:=StrtoInt(ChlBox.Items.Strings[i]);
Scan(Port);
End;
btStart.Enabled:=True;
PortScan.Active:=False;
end;

procedure TMain.PortScanConnect(Sender: TObject;
Socket: TCustomWinSocket);
begin
Memo.Items.add("<"+PortScan.Host+">"+" Port "+Inttostr(PortScan.port)+" : Open...");
PortScan.Close;
Portscan.ClientType:=ctBlocking;
end;

procedure TMain.PortScanError(Sender: TObject; Socket: TCustomWinSocket;
ErrorEvent: TErrorEvent; var ErrorCode: Integer);
begin
ErrorCode:=0;
Portscan.ClientType:=ctBlocking;
end;




Все полностью работает. при следующем условии: Если первый порт действительно открыт (На пример 139), то следйющие нормально определяются открыты или нет.


Но вот когда первый сканируемый порт неоткрыт, то следующие, хоть ты тресни, просто напросто показываются неоткрытыми (дажн тот же 139-й).

В чем глюк?
Помогите, Плз.



tty1   (2002-01-30 02:32) [8]

procedure TMain.PortScanError(Sender: TObject; Socket: TCustomWinSocket;
ErrorEvent: TErrorEvent; var ErrorCode: Integer);
begin
ErrorCode:=0;
Portscan.ClientType:=ctBlocking;
Socket.Close // <----------
end;

Сколько будет "весить" твой сканер при такой функциональности?..:)






Форум: "Сети";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.04.11;
Скачать: [xml.tar.bz2];




Наверх





Память: 0.74 MB
Время: 0.026 c
14-32966          FLIZ                  2002-03-04 15:21  2002.04.11  
Кто сталкивался с такой проблемой после установки Офиса 2000?


1-32799           Crime134              2002-03-31 22:21  2002.04.11  
Строки


1-32821           vlv                   2002-03-28 17:40  2002.04.11  
Создание компонентов


3-32655           Rad                   2002-03-18 19:12  2002.04.11  
Interbase vs Firebird


3-32664           GenBr                 2002-03-20 12:33  2002.04.11  
ClientDataSet