Avatar billede simon_jacobsen Nybegynder
08. juni 2002 - 17:37 Der er 3 kommentarer og
1 løsning

dedicated server ?????

jeg er igang med at lave et netværks spil, men i stedet for både at lave et serverprogram, en client og en dedicated server har jeg prøvet at "bygge" den dedicated server sammen med en client. Jeg har bare nogle problemmer med at den sætter nogen af de sendte kommandoer sammen, så spillet ikke "forstår" det.
jeg bruger winsock-componenter. TCP/IP
det der sker at serveren først sender "CHECK" og bagefter "TEST", men det der kommer frem til clienterne er "CHECKTEST" hvordan undgår man det ??????
og hvad gør jeg forkert.
På Forhånd Tak :)
Avatar billede jespernaur Nybegynder
08. juni 2002 - 18:06 #1
En TCP forbindelse er en såkaldt 'byte-stream' hvilket vil sige, at selv hvis afsenderen sender data i flere adskilte operationer, kan det sagtens forekomme, at modtageren modtager dem i een sammenhængende klump. Det der skal til er, at afsender og modtager bliver enige om en konvention til at separere forskellige 'records'. Den simpleste er nok noget med at første byte indeholder længden af den efterfølgende 'record'.

Mvh
Jesper Naur
Avatar billede kantoraza Nybegynder
08. juni 2002 - 19:07 #2
Jeg har ikke forstand på winsock, men jeg har da en idé til hvordan du adskiller tekststrengene.
Du kan indsætte et tegn som du ikke vil bruge i dit spil, som fx | . Når du så sender en tekststreng, skriver du bare: "CHECK|"

I dit modtager program laver du så en separere prosedure, hvor du adskiller alle | ...

Det kunne du jo lave sådan her:

-------START--------
Private Sub Command1_Click()
Dim Tekst As String
Tekst = Text1.Text ' Den tekst som du modtager

Dim Teksts(100) As String
Dim Hvilken As Integer

For n = 1 To Len(Text1.Text)
   
    If Mid(Tekst, n, 1) <> "|" Then
    Teksts(Hvilken) = Teksts(Hvilken) & Mid(Tekst, n, 1)
    Else
    Hvilken = Hvilken + 1
    End If

Next n


Text1.Text = ""

For n = 0 To Hvilken
    Text1.Text = Text1.Text & Teksts(n) & " "
Next n

End Sub
-------SLUT--------

Bemærk, at i mit program bruger jeg en textbox. Den textbox skal bare erstattes med den tekst som programmet modtager.
Til sidst (i den sidste for next løkke) skriver jeg bare teksten i textboxen igen. Det skal du kun bruge hvis du vil have dine arrays med tekstindhold skrevet ud....


/KantoRaZa\
Avatar billede simon_jacobsen Nybegynder
08. juni 2002 - 23:23 #3
hmm, jeg kan godt følge din tankegan men der må da findes en smartere måde en at begynde at gennemsøge hver eneste bogstav der bliver modtaget.
Avatar billede jespernaur Nybegynder
09. juni 2002 - 01:19 #4
Hvis man sender længden med (som ovenfor nævnt), behøver man ikke at søge.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester