Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

Winsock UDT verschiken

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC.
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Thorben



Anmeldungsdatum: 26.04.2005
Beiträge: 173
Wohnort: SH

BeitragVerfasst am: 21.01.2008, 16:56    Titel: Winsock UDT verschiken Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
MisterD



Anmeldungsdatum: 10.09.2004
Beiträge: 3071
Wohnort: bei Darmstadt

BeitragVerfasst am: 21.01.2008, 18:54    Titel: Antworten mit Zitat

bist du wahnsinnig? grinsen string arrays in udts? grinsen 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
Benutzer-Profile anzeigen Private Nachricht senden
Jojo
alter Rang


Anmeldungsdatum: 12.02.2005
Beiträge: 9736
Wohnort: Neben der Festplatte

BeitragVerfasst am: 21.01.2008, 19:09    Titel: Antworten mit Zitat

ich glaub FB hat keine probleme mit dynamischen stringlängen (oder war das VB...?), weil die irgendwie mitgesendet werden Zunge rausstrecken 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
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
ThePuppetMaster



Anmeldungsdatum: 18.02.2007
Beiträge: 1839
Wohnort: [JN58JR]

BeitragVerfasst am: 21.01.2008, 20:25    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC. Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz