Zum Inhalt springen

Sleep aber ohne Prozeß zu stoppen


microdommi

Empfohlene Beiträge

Moin,

habe folgendes Problem.... Ein Winsock Steuerelement soll eine TCP Verbindung aufbauen.... und dann Daten schicken...

zwischen dem schicken und verbinden brauche ich aber eine Pause, sonst gehts nicht.... habe ich mit zwei Buttons probiert!

So wenn ich Sleep oder eine eigene Prozedur benutze um zu warten.... dann stop der Connect-Prozeß!!! Wie kann ich das umgehen??? Mit DoEvents klappt es irgendwie nicht...

Link zu diesem Kommentar
Auf anderen Seiten teilen

falls du das problem hast, das der Verbindungsvorgang etwas länger dauert und schon versucht wird zu senden, sollte folgendes helfen:

do

doevents

loop while winsock1.state <> 7

Hier sollte noch eine Überprüfung vorgenommen werden, denn wenn z.B. eine falsche Adresse eingegeben wird, haben wir eine Endlos Schleife.

hiro

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hi,

hab hier einen Port-Scanner-Code, is zwar net von mir, aber verdammt schnell.

Wsk heisst das Winsock-Element

Die anderen Elemente wirst'e schon finden ;)

-------------Snip----------

Public Max_Con

Public Max_Port

Public Last_Checked

Public url As String

Private Is_ready(33999) As Ready

Private Type Ready

Value As Integer

End Type

Private Sub Command1_Click()

blah = InputBox("How Many Sockets? (500 is good)", HowMany, 500)

Max_Con = blah

For x = 1 To blah

Load Wsk(x)

Next x

End Sub

Private Sub Command2_Click()

url = InputBox("URL to SCAN", , "localhost")

Me.Caption = url

Max_Port = InputBox("Maximum port to scan")

Call Check

End Sub

Private Sub Timer1_Timer()

Label3.Caption = Val(Label3.Caption) + 1 & " Second/s"

End Sub

Private Sub Wsk_Connect(Index As Integer)

Label1.Caption = "Last Checked In: " & Wsk(Index).RemotePort

List1.AddItem Index, 0

Wsk(Index).Close: Is_ready(Index).Value = 0 'set socket ready

End Sub

Private Sub Wsk_Error(Index As Integer, ByVal Number As Integer, Description As String, ByVal Scode As Long, ByVal Source As String, ByVal HelpFile As String, ByVal HelpContext As Long, CancelDisplay As Boolean)

Label1.Caption = "Last Checked In: " & Wsk(Index).RemotePort

Wsk(Index).Close: Is_ready(Index).Value = 0 'set socket ready

End Sub

Sub Check()

Strt:

Timer1.Enabled = True

DoEvents

For x = 1 To Max_Con

DoEvents

'Wsk(x).Close This is Bad!!

If Is_ready(x).Value <> 0 Then GoTo 20: ' Socket Isnt done checking skip

Wsk(x).Connect url, Last_Checked + 1

Is_ready(x).Value = 1 'Set socket not ready

Last_Checked = Last_Checked + 1

Label2.Caption = "Next To Be Scanned: " & Last_Checked

20:

Next x

If Val(Last_Checked) >= Val(Max_Port) Then

Timer1.Enabled = False

For y = 1 To Max_Con

'Clean Up

Is_ready(y).Value = 0

Unload Wsk(y)

Next y

MsgBox ("Stoped")

Exit Sub

Else:

GoTo Strt:

End If

End Sub

-------------Snip----------

Hth

KarlBerg

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...