Als je het prog dat ik heb gemaakt opstart wordt er direct een verbinding met een server gemaakt maar er moet daarna direct text worden verstuurd naar de server om aan te tonen om welke persoon het gaat die connect. Nou had ik gelezen dat je dit niet onder elkaar mag zetten in de code. Heb het zelf uitgetest en hij zegt dan Wrong protocol or connection state ... Hij is dus nog niet verbonden denk ik. Hoe los ik zoiets op?
Verwijderd
Je wil met een winsock control dus een connectie openen naar een server, dus dan gaat het dus om TCP, niet UDP, right?
Kan je wat code laten zien van hoe je die connectie opbouwt?
Kan je wat code laten zien van hoe je die connectie opbouwt?
Dit is dus code,moet soort portscanner worden voor mijn programma om zo alle server op te sporenDim a As Integer
Private Sub Client_DataArrival(ByVal bytesTotal As Long)
Client.GetData b$
If b$ = "OK" Then
Poort.AddItem a
Exit Sub
End If
End Sub
Private Sub cmdScan_Click()
For a = 1 To 100
ListA.AddItem a
Client.Close
Client.Connect "ddkiller666.d2g.com", a
DoEvents
If Client.State = 4 Then
Client.SendData "SCAN"
DoEvents
End If
Next a
End Sub
Dit lijkt mij wel te doen, maar ik moet dus direct die text kunnen sturen na het connecten, anders doet ie niks
Verwijderd
1) Const sckResolvingHost = 4
Lijkt me een beetje onlogisch om al data te sturen als je WinSock-control nog bezig is met te kijken waarnaar hij/zij moet connecten...
2) Er is een event van WinSock die afgevuurd wordt op het moment dat ie connect...
Private Sub MyWinSock_Connect()
Lijkt me een beetje onlogisch om al data te sturen als je WinSock-control nog bezig is met te kijken waarnaar hij/zij moet connecten...
2) Er is een event van WinSock die afgevuurd wordt op het moment dat ie connect...
Private Sub MyWinSock_Connect()
Dat van jou wil helemaal niet werken. Er moet toch iets zijn hoe ik direct na het connecten iets kan verzenden naar de server
Weet iemand het? Deze kleingheid houdt mij op
Hoe erg zie jij "Direct" als Direct?
Je PC is echt wel snel genoeg als jij er nog 100-de dingen tussen stopt
Maar je moet gewoon even het event pakken die aangeroepen wordt wanneer je geconnect ben.
Of wat je ook kan doen is een timer in werking laten stellen die je winsock.connectionstate om die 10 mS checkt op status.
Als die Connected is--> Sturen de handel en dan een sub aanroepen die de rest van je programma afhandeld ofzo.
tip: Bouw er even een timeout in..anders ga je last krijgen van hangende programma's als het tegenzit
Je PC is echt wel snel genoeg als jij er nog 100-de dingen tussen stopt
Maar je moet gewoon even het event pakken die aangeroepen wordt wanneer je geconnect ben.
Of wat je ook kan doen is een timer in werking laten stellen die je winsock.connectionstate om die 10 mS checkt op status.
Als die Connected is--> Sturen de handel en dan een sub aanroepen die de rest van je programma afhandeld ofzo.
tip: Bouw er even een timeout in..anders ga je last krijgen van hangende programma's als het tegenzit
Dat zou ik niet doen; het is een stuk inefficienter en bovendien niet elegant. Waarom pollen als je zo makkelijk een eventhandler kan bouwen? Socket_Connect is echt de enige juiste manier om dit te doen.Op vrijdag 12 juli 2002 14:55 schreef Mir het volgende:
[...]
Of wat je ook kan doen is een timer in werking laten stellen die je winsock.connectionstate om die 10 mS checkt op status.
Als die Connected is--> Sturen de handel en dan een sub aanroepen die de rest van je programma afhandeld ofzo.
[...]
code:
1
2
3
| Private Sub Client_Connect() Client.SendData "SCAN" End Sub |
Kort maar krachtig
4200Wp ZO + 840Wp ZW + 1680Wp NW | 14xIQ7+ + 1xDS3-L | MTVenusE | HWP1
Als ik dat zo zet in mijn Connect Event, dan gebeurt er niks 
snap er niks van
de bedoeling is dat hij gaat proberen te connecten met bv een computer op ip adres 192.168.0.1
Dan controleert ie welke poort de server daar draait (van een ander proggie). Dus heb ik een for-lus gemaakt, die iedere poort afgaat waarop het programma kan draaien. dus het ziet ongeveer als volgt uit
snap er niks van
de bedoeling is dat hij gaat proberen te connecten met bv een computer op ip adres 192.168.0.1
Dan controleert ie welke poort de server daar draait (van een ander proggie). Dus heb ik een for-lus gemaakt, die iedere poort afgaat waarop het programma kan draaien. dus het ziet ongeveer als volgt uit
zoiets, kan dit lukken?Dim a As Integer
Private Sub Client_Connect()
Client.SendData "SCAN"
DoEvents
End Sub
Private Sub Client_DataArrival(ByVal bytesTotal As Long)
Client.GetData b$
If b$ = "OK" Then
Ip.AddItem "Poort " + a + " werd geaccepteerd"
Exit Sub
End If
End Sub
Private Sub cmdScan_Click()
For a = 1 To 100
poort.AddItem a
Client.Close
Client.Connect "ddkiller666.d2g.com", a
DoEvents
End Sub
Verwijderd
Je moet denk ik zoiets proberen:
En natuurlijk even afvangen bij de WinSock_Error() dat RemotePort kleiner blijft dan je maximum...
code:
1
2
3
4
5
6
7
8
9
10
11
| Sub cmdScan_Click() RemotePort = de eerste poort WinSock.Connect() Sub WinSock_Connect() MsgBox "Connect" Sub WinSock_Error() WinSock.Close() RemotePort = RemotePort + 1 WinSock.Connect() |
En natuurlijk even afvangen bij de WinSock_Error() dat RemotePort kleiner blijft dan je maximum...
ja maar, er moet een bericht (in mijn geval SCAN ) worden gestuurd om aan te geven dat een poortscanner de chat opvraagt, als die een antwoord krijgt van de server bv "OK" dan moet het ip waarmee hij heeft geconnect aan een lijst toegevoegd worden en dan gaat hij verder met de volgende poort.
RemoteHostIP?
[ps]
Klik op je winsock control, druk [F1]
[ps]
Klik op je winsock control, druk [F1]
Somniferous whisperings of scarlet fields. Sleep calling me and in my dreams i wander. My reality is abandoned (I traverse afar). Not a care if I never everwake.
Zal niet echt lukken, is geen legale visual basic 
Wou van wel
had ik tenminste een goede help en nu heb ik niks, alleen visual basic en daarmee moet ik me zien te behelpen.
Wou van wel
Pagina: 1