/ Forside / Teknologi / Udvikling / VB/Basic / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
VB/Basic
#NavnPoint
berpox 2425
pete 1435
CADmageren 1251
gibson 1230
Phylock 887
gandalf 836
AntonV 790
strarup 750
Benjamin... 700
10  tom.kise 610
Problem med Winsock ...
Fra : Erlend Klakegg Bergh~


Dato : 21-07-01 15:51

Jeg får feilen "Invalid operation at current state" (40020). Kodingen er
ganske grei ...

Sakset ut :

Private Sub MDIForm_Load()

Load Winsock(1)
Winsock(1).LocalPort = 1001
Winsock(1).Listen

End Sub

Private Sub Winsock_ConnectionRequest(Index As Integer, ByVal requestID As
Long)

'HER oppstår feilen !!!!!!!!
Winsock(1).Accept requestID 'Aksepterer tilkobling

End Sub

Private Sub Winsock_DataArrival(Index As Integer, ByVal bytesTotal As Long)

Dim Temp As String
Winsock1.GetData Temp

MsgBox Temp

End Sub

Håper det er noen som kan fortelle meg hva jeg gjør feil ...
Winsock-kontrollen er stillt inn på TCP ...

--

Vennlig hilsen Erlend
erlendkb@c2i.net
ICQ 42053660
http://www.kleggen.com/



 
 
El Diablo (21-07-2001)
Kommentar
Fra : El Diablo


Dato : 21-07-01 20:08

Hej Erlend.

> Private Sub Winsock_ConnectionRequest(Index As Integer, ByVal requestID As
> Long)
(ByVal requestID As Long)

--- Ny kode Start ---
If Winsock(1).State <> sckClosed Then ' Checker om Winsock er er lukker.
Winsock(1).Close 'Hvis ikke, så lukkes den.
End If
--- Ny kode Stop ---
> Winsock(1).Accept requestID 'Aksepterer tilkobling
> End Sub

Så skulle det fungere ! :) .. Du kan ikke lave en accept når winsock lytter
! :) Sæt eventuelt en Winsock(1).listen inde i bunden af subben, hvis du vil
ha' den til at lytte videre ! :)

.... Venligst .. El



Tomas Christiansen (21-07-2001)
Kommentar
Fra : Tomas Christiansen


Dato : 21-07-01 23:30

El Diablo skrev:
> Så skulle det fungere ! :) .. Du kan ikke lave en accept når winsock lytter
> ! :) Sæt eventuelt en Winsock(1).listen inde i bunden af subben, hvis du vil
> ha' den til at lytte videre ! :)

Normalt har man en Winsock kontrol til at stå og "lytte".
Når der så kommer nogen og vil "tale" med én, opretter man dynamisk et nyt Winsock objekt, og accepterer forbindelsen på dette nye
objekt.
Derved er det muligt at "tale" med flere forskellige klienter på samme tid, hvilket ofte er ønskværdigt (tænk f.eks. på situationen:
"desværre der er kun én der kan bruge webserveren ad gangen" )

-------
Tomas


Erlend Klakegg Bergh~ (22-07-2001)
Kommentar
Fra : Erlend Klakegg Bergh~


Dato : 22-07-01 02:57

Tomas Christiansen <toc@blikroer.removethis.dk> skrev i
news:onn67.192$FO2.17070@news.get2net.dk
> El Diablo skrev:
> > Så skulle det fungere ! :) .. Du kan ikke lave en accept når winsock
lytter
> > ! :) Sæt eventuelt en Winsock(1).listen inde i bunden af subben, hvis du
vil
> > ha' den til at lytte videre ! :)
>
> Normalt har man en Winsock kontrol til at stå og "lytte".
> Når der så kommer nogen og vil "tale" med én, opretter man dynamisk et nyt
Winsock objekt, og accepterer forbindelsen på dette nye
> objekt.
> Derved er det muligt at "tale" med flere forskellige klienter på samme
tid, hvilket ofte er ønskværdigt (tænk f.eks. på situationen:
> "desværre der er kun én der kan bruge webserveren ad gangen" )

Jeg er fullt klar over det ... Jeg opprettet forbindelsen for å teste noe
før jeg gjorde det om til en server, men som alltid er det ingen vits i å
bygge videre på noe som ikke fungerer, så jeg spurte her om litt hjelp til å
se hva som var problemet ...

I tillegg har jeg hatt 1 måned fri ifra PC'en, så nå ligger det hauger med
news-innlegg og venter på å bli lest ...

Jeg kan like gjerne takke for hjelpen, og jeg vil si til Thomas at det er
bra man legger frem slikt på en nyhetsgruppe, for det er ikke alltid bare de
som kan det som er interessert i hvordan det virker eller hvordan man tenker
.... =)

--

Vennlig hilsen Erlend
erlendkb@c2i.net
ICQ 42053660
http://www.kleggen.com/





El Diablo (22-07-2001)
Kommentar
Fra : El Diablo


Dato : 22-07-01 15:46

Hej Thomas.

> "desværre der er kun én der kan bruge webserveren ad gangen" )

I forhold til "Flooding" og "Overrun" er det vel heller ikke så ringe ! :)
(Tænker IIS - Code Red) :)

... Venligst .. El



Tomas Christiansen (23-07-2001)
Kommentar
Fra : Tomas Christiansen


Dato : 23-07-01 12:01

El Diablo skrev:
> I forhold til "Flooding" og "Overrun" er det vel heller ikke så ringe ! :)
> (Tænker IIS - Code Red) :)

Du ku' jo prøve at sende forslaget til Microsoft...

-------
Tomas


El Diablo (25-07-2001)
Kommentar
Fra : El Diablo


Dato : 25-07-01 00:35

Hej Tomas Christiansen

> Du ku' jo prøve at sende forslaget til Microsoft...

Hvad mon de vil gi' for det ? .. deres vanlige politik er bare at stjæle
uden og spørge om lov ! }:)

... Venligst .. El




news.stofanet.dk (29-07-2001)
Kommentar
Fra : news.stofanet.dk


Dato : 29-07-01 13:35

Jeg har et tip hvis det er sådan at du vil kunne have at flere tilkobler din
service på en gang:

--- Start på kode ---

Option Explicit
Dim CPort as Integer

Private Sub Form1_Load()
CPort = 4356 'Bare en tilfældig port at starte på
Winsock(0).LocalPort = 1001
CloseSocket 0
Winsock(0).Listen
End Sub

Private Sub CloseSocket(Index as Integer)
Winsock(Index).Close
Do Until Winsock(Index).State = 0
DoEvents
Loop
End Sub

Private Sub ConnectionRequest(requestID as Long)
Dim Found as Integer
Dim X as Integer

'Søger efter en ledig socket
For X = 1 To Winsock.UBound
If Winsock(X).State = 0 Then
Found = X
Exit For
End If
Next X

'Hvis ingen ledige sockets fundet, opretter den en ny
If Found = 0 Then
Load Winsock(Winsock.UBound + 1)
Found = Winsock(Winsock.UBound)
End If

'Tildeler den ingående forbindelse til denne socket
CloseSocket Found
Do
Err.Clear
Winsock(X).LocalPort = CPort
CPort = CPort + 1
Winsock(X).Accept requestID
If Err = 0 Then Exit Do
Loop
Do Until Winsock(X).State = 7
DoEvents
Loop
End Sub

--- Slut på kode ---

På denne måde forhindres det at en forbindelse bliver afvist, pga der
allerede er forbindelser til denne port

Kristian Trenskow

"Erlend Klakegg Bergheim" <erlendkb@c2i.net> wrote in message
news:oGg67.556$4E6.11242@news1.oke.nextra.no...
> Jeg får feilen "Invalid operation at current state" (40020). Kodingen er
> ganske grei ...
>
> Sakset ut :
>
> Private Sub MDIForm_Load()
>
> Load Winsock(1)
> Winsock(1).LocalPort = 1001
> Winsock(1).Listen
>
> End Sub
>
> Private Sub Winsock_ConnectionRequest(Index As Integer, ByVal requestID As
> Long)
>
> 'HER oppstår feilen !!!!!!!!
> Winsock(1).Accept requestID 'Aksepterer tilkobling
>
> End Sub
>
> Private Sub Winsock_DataArrival(Index As Integer, ByVal bytesTotal As
Long)
>
> Dim Temp As String
> Winsock1.GetData Temp
>
> MsgBox Temp
>
> End Sub
>
> Håper det er noen som kan fortelle meg hva jeg gjør feil ...
> Winsock-kontrollen er stillt inn på TCP ...
>
> --
>
> Vennlig hilsen Erlend
> erlendkb@c2i.net
> ICQ 42053660
> http://www.kleggen.com/
>
>



Søg
Reklame
Statistik
Spørgsmål : 177501
Tips : 31968
Nyheder : 719565
Indlæg : 6408527
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste