Gå til innhold

vb 6.0 og winsock spørsmål.


Anbefalte innlegg

Videoannonse
Annonse
Skrevet

Nei, det er ikke slik det fungerer. Det finnes klienter og en server.

 

Klienten skal koble til en server med Connect().

 

Serveren "hoster" med med to linjer:

tcpServer.LocalPort = 1337
tcpServer.Listen

 

Hvis du skal ha mer enn 1-mot-1-chat, så blir ting litt annerledes, men det er ikke nødvendig å skrive om enda.

Skrevet

OK..

 

Slik ble den kommandoen jeg lagde for å connecte.

Winsock1.Connect Text2.Text, Text3.Text

 

Også for å sende data:

Winsock1.SendData Text1.Text

DoEvents

 

men det funker ikke

 

:no:

Skrevet (endret)

Hmm. Skal det ikke også funke med å sette ip som 127.0.0.1 eller min lan ip. For å teste?

 

Får feilmelding med både det du lagde, og det jeg laget nettop.

Legger med det jeg laget.

 

EDIT: Fant feilen tok feil av to tekstbokser :blush:

 

Men så er det pån igjen med ny feil. Når jeg for kobla til og får svaret "Connected"

Altså allt funker hittil, feilen kommer når jeg skal sende noe, denne koden bruker jeg på sende knappen:

 

Kode:

Winsock1.SendData "Testing 1 2 3"

 

Noe feil i den eller?

Kan det ha noe med at jeg kjører det i lan, altså den sender til "127.0.0.1"?

Winsock.zip

Endret av Stig Jøran
Skrevet

Å kjøre programmet to ganger på en maskin vil nok ikke funke,

 

Uansett, hvordan feil er det? Feilmelding? Hvordan feilmelding? På hvilken linje? Mye lettere å hjelpe hvis du sier det ;)

Skrevet
Å kjøre programmet to ganger på en maskin vil nok ikke funke,

 

Uansett, hvordan feil er det? Feilmelding? Hvordan feilmelding? På hvilken linje? Mye lettere å hjelpe hvis du sier det ;)

Koden som feiler:

 

Private Sub Command2_Click()

' Da skal data sendes.

Winsock1.SendData "Testing 1 2 3"

End Sub

 

 

Feilmelding ligger som vedlegg.

post-32-1109531999_thumb.jpg

Skrevet (endret)

Den kommer fordi du ikke er koblet til når du prøver å sende data. Jeg vet ikke grunnen til det, men eventen 'Winsock_Connect()' blir kalt når du er tilkoblet ;)

Endret av Jonas
Skrevet
Den kommer fordi du ikke er koblet til når du prøver å sende data. Jeg vet ikke grunnen til det, men eventen 'Winsock_Connect()' blir kalt når du er tilkoblet ;)

Legger med en ny "source", kan du sjekke om du ser noe som er galt?

Noe må det være :p

Winsock2.zip

Skrevet (endret)

Ahh... jeg gjorde en gigantisk flause når jeg skulle angi host-navnet klienten skulle koble seg til - jeg benyttet funksjonen Val(). Det skulle jeg opplagt ikke ha gjort, ettersom det fikk strengen omgjort til noe helt annet enn "127.0.0.1", nemlig tallet 127.

 

Men hva problemet angår, ligger det i at serveren mangler følgende kode:

 

Private Sub Winsock1_ConnectionRequest(ByVal requestID As Long)

   Winsock1.Close
   Winsock1.Accept requestID

End Sub

 

Uten denne koden vil den ikke akseptere en ny tilkobling.

Endret av aadnk
Skrevet
Ahh... jeg gjorde en gigantisk flause når jeg skulle angi host-navnet klienten skulle koble seg til - jeg benyttet funksjonen Val(). Det skulle jeg opplagt ikke ha gjort, ettersom det fikk strengen omgjort til noe helt annet enn "127.0.0.1", nemlig tallet 127.

 

Men hva problemet angår, ligger det i at serveren mangler følgende kode:

 

Private Sub Winsock1_ConnectionRequest(ByVal requestID As Long)

   Winsock1.Close
   Winsock1.Accept requestID

End Sub

 

Uten denne koden vil den ikke akseptere en ny tilkobling.

Tusen Takk! :D:thumbup:

Skrevet (endret)

:dontgetit:

 

Fikk til å sende til meg selv over lan. Men

Det funker ikke mellom to maskiner over internet.

Får error "40006", når clienten skal sende data.

 

Den får ikke til å connecte, hvorfor?

 

EDIT: Løst. Men en liten ting til.

Endret av Stig Jøran
Skrevet

Å sende data tilbake igjen krever svært liten endring i selve koden; alt som trengs er å legge til følgende hos klienten:

 

Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)

   Dim sData As String
   
   Winsock1.GetData sData
   
   MsgBox sData

End Sub

 

Når dette er gjort, kan du sende data fra serveren og til klienten, eksempelvis som dette:

 

Winsock1.SendData "hallo"

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...