Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.04.11;
Скачать: CL | DM;

Вниз

Ну не хочет Он работать!!!!!   Найти похожие ветки 

 
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;

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






Страницы: 1 вся ветка

Текущий архив: 2002.04.11;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.01 c
3-32621
tovSuhov
2002-03-22 14:28
2002.04.11
Ограничение на кол-во записей...


6-32917
eblade
2002-01-25 18:56
2002.04.11
Как отправить через TClientSocket несколько запросов подряд?


3-32686
Nina
2002-03-21 09:26
2002.04.11
Уникальные значения


1-32798
NTDim
2002-03-28 13:03
2002.04.11
Расшифровка тела e-mail


1-32740
skovorodka
2002-03-29 14:29
2002.04.11
Как сделать неправильной формы кнопку >:) не надо называть меня л