Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Thorben
Anmeldungsdatum: 26.04.2005 Beiträge: 173 Wohnort: SH
|
Verfasst am: 21.01.2008, 16:56 Titel: Winsock UDT verschiken |
|
|
Moin
ich verschike ein paar daten per Winsock und zwar:
Code: |
TYPE TYPE_NetPlayer
vtx AS TYPE_3DVektor
ang AS TYPE_2DVektor
energy AS INTEGER
CountFlags AS INTEGER
flag( 20 ) AS STRING * 64
message AS STRING * 64
Name_ AS STRING * 64
kills As Integer
deads As INTEGER
END TYPE
DIM SHARED NetPlayer( 20 ) AS TYPE_NetPlayer
|
wenn das Array (flag(20)) mit mehr als einer größe von 5 definiert wird stürzt der Server ab bzw hängt sich auf und macht nichts mehr. Kann sich das einer erklären?
Zum sende/empfangen benutze ich folgenden Code:
Code: |
send( NetClients( i ) , @NetPlayer( 0 ) , LEN( TYPE_NetPlayer ) * 20 , 0 )
recv( NetClients( i ) , @NetPlayer( i ) , LEN( TYPE_NetPlayer ) , 0 )
|
MFG Thorben |
|
Nach oben |
|
 |
MisterD

Anmeldungsdatum: 10.09.2004 Beiträge: 3071 Wohnort: bei Darmstadt
|
Verfasst am: 21.01.2008, 18:54 Titel: |
|
|
bist du wahnsinnig? string arrays in udts? strings musst du mit strptr von hand schicken, das gilt auch wenn du ganze udts verschickst, folglich wird das wohl ne relativ ekelhafte sache bzw das array insbesondere. Und sag mal, hagelts bei dem Programm keine Compilerwarnungen von wegen dynamic array in return type oder so? oder gibst du nie ne variable von dem typ aus ner funktion zurück? zumindest vor nem jahr konnte das memorymanagement von freebasic keine string-arrays als funktionsrückgaben handlen, gab mass memory leak wenn mans oft benutzt hat - und ich denke eigentlich nicht, dass sich da irgendjemand die mühe macht was dran zu ändern.. _________________ "It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration."
Edsger W. Dijkstra |
|
Nach oben |
|
 |
Jojo alter Rang

Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 21.01.2008, 19:09 Titel: |
|
|
ich glaub FB hat keine probleme mit dynamischen stringlängen (oder war das VB...?), weil die irgendwie mitgesendet werden war zumindest bei dateioperationen so... kann aber auch VB sein^^ _________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
 |
|
Nach oben |
|
 |
ThePuppetMaster

Anmeldungsdatum: 18.02.2007 Beiträge: 1839 Wohnort: [JN58JR]
|
Verfasst am: 21.01.2008, 20:25 Titel: |
|
|
in VB kannst du UDTs in PropBags schieben, und den daraus folgenden String verschicken. zum schluss kannst das wieder ins propBag pumpen, udn bekommst dein UDT raus.
In FB würde ich es über MemCpy machen, der aus dem UDT einen String oder ein ByteArray formt, welcher versand werden kann, und zum schluss wieder zurück. Jedoch weis nicht nicht, ob es auf der gegenseite zu probs bezüglich Pointer kommen kann.
MfG
TPM _________________ [ WebFBC ][ OPS ][ ToOFlo ][ Wiemann.TV ] |
|
Nach oben |
|
 |
|