Jonas Skrevet 19. januar 2004 Forfatter Del Skrevet 19. januar 2004 Hmm.. for fortsatt samma feil Har jeg copy-pasta litt feil eller skal koden se sånn ut: Private Sub tcpServer_ConnectionRequest(Index As Integer, ByVal requestID As Long) 'check for tcpserver state if it is NOT CLOSED then accept request Dim Buff& ' En klient har spurt om å koble seg til, allocer en control og aksepter tilkoblingen ' For å spare på ressurser sjekker vi om noen controler er ledige: Buff = GetFreeControl If Buff < 0 Then Buff = tcpServer.Count Load tcpServer(Buff) End If tcpServer(Buff).Accept requestID end sub tcpServer(Buff).Accept requestID gir fortsatt error Lenke til kommentar
Jonas Skrevet 20. januar 2004 Forfatter Del Skrevet 20. januar 2004 Sorry for alt bryet, men nå har jeg nesten klart det! Det er bare det at når den andre klienten prøver å logge seg på får jeg en error, Allready open: Private Sub tcpServer_ConnectionRequest(Index As Integer, ByVal requestID As Long) 'check for tcpserver state if it is NOT CLOSED then accept request If Index = 0 Then intMax = intMax + 1 Load tcpServer(intMax) tcpServer(intMax).LocalPort = "1234" tcpServer(intMax).Accept requestID Dim data data = "123098" tcpServer(1).SendData data End If End Sub Load tcpServer(intMax) ble merket gult. Jeg fant denne koden hos en som har gjort noe det samma, bare at han klarte det Noen som vet hva som kan være galt? Lenke til kommentar
Jonas Skrevet 20. januar 2004 Forfatter Del Skrevet 20. januar 2004 (endret) dobbel post Endret 20. januar 2004 av jonas22282460 Lenke til kommentar
abcd423417984 Skrevet 20. januar 2004 Del Skrevet 20. januar 2004 prøv tcpserver(intmax).close før du accepter...mulig jeg er på vidda her, er så lenge siden jeg har drevet med dette, men det er verdt et forsøk. Lenke til kommentar
Jonas Skrevet 20. januar 2004 Forfatter Del Skrevet 20. januar 2004 (endret) Edit: bare glem alt dette.. jeg klarer det ikke.. Endret 21. januar 2004 av jonas22282460 Lenke til kommentar
PlastBox Skrevet 28. mai 2004 Del Skrevet 28. mai 2004 Ok, min tur til å prøve. Har ikke VB på jobb så jeg får ikke testa, men troooor jeg skulle klare det alikevel, hehe. Private Sub tcpServer_ConnectionRequest(Index As Integer, ByVal requestID As Long) 'Index vil altid være 0 da tcpServer(0) er den eneste winsock'en som lytter. 'Sjekke om det er en ledig socket innimellom rekka et sted (1, 2, 3 og 5, 6 er opptatt. Da bruker vi 4) For a% = 1 to tcpServer.Count - 1 If tcpServer(a%).State <> 7 Then 'State = 7 betyr at en klient er tilkobla. tcpServer(a%).Close 'Bare for å unngå tull. tcpServer(a%).Accept RequestID 'Godta tcpServer(a%).SendData "Velkommen!" & vbCrLf 'Denne er jeg ikke sikker på, men hvis du kan plassere den under tcpServer_Connect() bør du nok det. Exit Sub 'Da var vi ferdig her. End If Next a% 'Kontrollere maks antall mulige klienter og evt. lage en ny socket. If tcpServer.Count =< 100 Then 'Er antall winsock-dingser er mindre eller lik 100? tcpServer(tcpServer.Count).Load 'Lag en ny winsock-dings. tcpServer(tcpServer.Count).Accept RequestID End If End Sub Dette skal funke så vidt jeg kan se, og du slipper å loade 10/100/200 sockets (eller hvor mange sockets du måtte ønske når formen loader. Den sjekker om en av de som finnes allerede er ledige. Hvis ingen er det, sjekker den om den har lov til å lage fler, har den det Loader den en til og Accepter på den. Lenke til kommentar
Jonas Skrevet 28. mai 2004 Forfatter Del Skrevet 28. mai 2004 Lenge siden jeg prøvde dette og da skjønte jeg ikke hva et array var, men det gjør jeg nå. Kan to winsocker i et array bruke samme port? Hvis de kan det blir det egentlig ikke noe problem, men hvis de ikke kan det, må jo klienten også skifte port når han kobler opp Lenke til kommentar
Klette Skrevet 28. mai 2004 Del Skrevet 28. mai 2004 Du kan også prøve å bruke ocx kontrolleren TTOSock, som forenkler en del ting Der har du en server som lytter på en port. Np en connectionrequest kommer sette du den Id'en den setter tiol brukeren i en array, når en annen bruker sender en melding, sender du en SendData "teksten" Id. Spør på msn vis du lurer på mer Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå