Форум: "Сети";
Поиск по всему сайту: 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.73 MB
Время: 0.026 c
1-32745           DimaP                 2002-03-29 23:45  2002.04.11  
Form


1-32841           LiNkS                 2002-03-28 15:30  2002.04.11  
Что-нибудь типа ReadOnly.


6-32933           Ivanov Vova           2002-01-22 15:41  2002.04.11  
Мастера, помогите ламеру, плз.


4-33012           kasper                2002-02-11 22:20  2002.04.11  
подскажите как удалять каталоги самые ранние по времени создания


1-32725           Rogot                 2002-03-30 05:45  2002.04.11  
Form