Miten pystyy hakemaan winsockilla tietuemuotoista tietoa?
Public Const PLAYERNAME_CHARS = 24 Public Type REFRESH_MSG sName(1 To 32) As String * PLAYERNAME_CHARS Team(1 To 32) As Byte Kills(1 To 32) As Long Deaths(1 To 32) As Long Ping(1 To 32) As Byte Number(1 To 32) As Byte IP(1 To 32, 1 To 4) As Byte TeamScore(1 To 4) As Long MapName As String * 16 TimeLimit As Long CurrentTime As Long KillLimit As Long GameStyle As Byte End Type
Tommoinen tietue.
Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long) Dim data As REFRESH_MSG Winsock.GetData data End Sub
ei toimi
Sun täytyy tehä omat funktiot, jotka muuttaa ton tietueen stringiks ja toisin päin.
Toinen, helpompi, ratkaisu on, että tallennat tietueen PUTilla tiedostoon, luet sen sieltä stringiksi ja lähetät sen. Sitten vain toisessa päässä luet sen stringiin, tallennat tiedostoon ja luet sen tuohon REFRESH_MSG tyyppiseen muuttujaan Getillä.
Ja tiedostoja pitää vissiinkin käsitellä binaryna eli:
open "tiedosto.dat" for binary as #1
En tosin tiedä kuinka suositeltava tapa tuo jälkimmäinen sitten on ohjelmointi tapoja katsoen...
Jos joku tietää vielä paremman tavan, kertokoon.
Tai sitte miettii ton tietueen koon, tekee sen kokoisen stringin ja CopyMemory-winapilla tunkee tietueen tiadot sinne. Ei tartte filuilla sitten leikkiä.
Koko VB ide sulkeutui kun yritin käyttää CopyMemoryä.
Esimerkkejä?
Aihe on jo aika vanha, joten et voi enää vastata siihen.