Oprettet lør. d. 26. maj 2001 kl. 14:24:49

stigc
stigc (25.593 point. Point ude: 1.560)

Sende objekt over socket

Jeg sender et objekt over socket. Dette objekt er helt statisk, og fylder 5152 bytes, men min socket på klienten læser kune ca. 3800 bytes og stopper læsningen og kører videre i programmet, uden fejl...

Alle attributter i objektet er statiske. Jeg har et andet objekt der går fint, som også er statisk.

Nogen af atributterne i objektet er som følgende;

    char symboltabel[17][20];
    char vartabel[100][20];
    char idtabel[100][20];

er det et problem?




Skrevet lør. d. 26. maj 2001 kl. 14:30:19| #1

stigc
stigc (25.593 point)
hmm... der findes åbenbart også 2-dem. arrayes i det andet objekt, som kan sendes fint over socket.


Her er headeren til klassen:


class SymbolListe
{
    private:
    int idtabelCounter;
    int vartabelCounter;
   
   
    public:
    int foelgecounter;
    char symboltabel[17][20];
    char vartabel[100][20];
    char idtabel[100][20];
   
    SymbolListe();
    void tilfoejTilSymbolfoelge(string);
    int symbolfoelge[100];
    int symbolfoelgeType[100];
    // 1 - keyword
    // 2 - variable (1,2,\'sgsdg\')
    // 3 - ID
   
};

Skrevet lør. d. 26. maj 2001 kl. 15:00:43| #2

miclarsen
miclarsen (22.225 point)
Det var et godt spørgsmål, bare jeg dog havde svaret!

Skrevet lør. d. 26. maj 2001 kl. 19:58:22| #3

rasmusneckelmann
rasmusneckelmann (21.041 point)
Hvad for en slags sockets bruger du? Hvis det bare er TCP så er det jo bizart!

Skrevet lør. d. 26. maj 2001 kl. 20:08:07| #4

stigc
stigc (25.593 point)
Ja jeg bruger TCP sockets.
Er jeg helt galt afmarcheret, eller burde det ikke kunne lade sig gøre?

Skrevet man. d. 28. maj 2001 kl. 23:04:38| #5

mickni33
mickni33 (13.827 point)
Er din socket skrevet med C system kald?
For så kan det ikke lade sig gøre. objekter, string og templates kan ikke overføres på den måde da C sproget jo ikke har dem implementeret.
Derimod skal du hellere går over til et struct objekt, det vil nok virke....måske.

Skrevet man. d. 28. maj 2001 kl. 23:09:45| #6

stigc
stigc (25.593 point)
mickni33  >> Sockets behøver da ikke kende mine objekter! Den tager det bare som en strøm af bytes fra hukommelsen. Først på server side når man lægger disse bytes i rammen, skal programmet kende objektet i forvejen.

Skrevet man. d. 28. maj 2001 kl. 23:10:35| #7

stigc
stigc (25.593 point)
string er en dynamisk struktur så det giver problemer, hvis man ikke tænker sig om

Skrevet man. d. 28. maj 2001 kl. 23:12:11| #8

mickni33
mickni33 (13.827 point)
Det er rigtig nok. Men der stod bare øverst oppe \' sende objekt over socket\'.

Skrevet man. d. 28. maj 2001 kl. 23:17:37| #9

stigc
stigc (25.593 point)
det er også det jeg vil, men sockets ser dem jo selvfølgelig bare som bytes, ligesom hvis du sendte en struct. :)

Skrevet man. d. 28. maj 2001 kl. 23:25:20| #10

mickni33
mickni33 (13.827 point)
Nej det tror jeg ikke, for jeg prøvede at sende noget over som kun indholdte integer til at starte med det virkede godt nok, men lige så snart jeg ville overføre en template, T array[] så gik der lort i den. og ligesådan gik det da jeg prøvede et objekt der havde integers og strings.
Jeg har gjort det at jeg skriver resultatet af en select statement ned på en fil derefter henter jeg statement resultatet char by char ind igen og write() tilbage til clienten igen, så har en buffer der tager imod.
(virker ikke 100% endnu, laver rapport)

Skrevet man. d. 28. maj 2001 kl. 23:29:33| #11

stigc
stigc (25.593 point)
strings kan du stadig ikke sende da de er dynamiske, og hvis din template er et object med dynamisk struktur, så er det derfor det ikke virker.

Jeg har droppet at sende hele objekter, men sender nu attributterne en af gangen. Det virker fint, men det ville da være nemmere det andet :)

Skrevet man. d. 28. maj 2001 kl. 23:34:41| #12

mickni33
mickni33 (13.827 point)
Ja helt bestemt..Man burde egentlig have fået besked på, at være opmærksom på ulempen ved at blande C/C++ så kunne man have sparet en masse og have lavet det på \'den grimme måde\' :)
Men det burde sku kunne laves smartere.....Irriterende.

Skrevet tor. d. 14. juni 2001 kl. 16:31:57| #13

stigc
stigc (25.593 point)
fandt ikke svaret......

Lidt for din hjælpsomhed

Skriv et indlæg




Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] [img]link til billede[/img]
Web- og emailadresser omdannes automatisk til links

Log ind

   

   

Seneste spørgsmål

Updater Hybrid App

Oprettet den 18. april 2012 kl. 13.29
sir_madsen giver 100 point for svar | Giv et svar »

Ansi-c win32API - kan ikke oprette Richedit4.1 kontrol

Oprettet den 16. april 2012 kl. 22.13
cblcbl giver 60 point for svar | Giv et svar »

Iphone Objective C - Sætte image på et imageview.

Oprettet den 7. april 2012 kl. 11.36
lasserasch giver 30 point for svar | Giv et svar »



   




Tips & Tricks fra PC World

Teaser billede

Læserne: Her er vores værste it-indkøb

Det er ikke al it-udstyr, som er det rene guld. Her er nogle af læsernes skrækhistorier.


Anmeldelser fra PC World

Teaser billede

Test: Mobil med Ferrari-design - og en Trabant-motor

Motorola har begået endnu en smartphone med lækkert design og potentiale til at være blandt de bedste. Men den når ikke i mål. Se her hvorfor.


Seneste blogindlæg

Teaser billede

Tvangslukke spørgsmål: Hvad er den bedste løsning?

Hej Vi har mange åbne spørgsmål på Eksperten. Vi ville gerne tvangslukke dem - så et spørgsmål efter f.eks. 6 måneder lukkes. Men der er et par uklarheder som ville være gode at få lidt input til:...


Nyheder fra PC World

Teaser billede

Sådan siger du farvel til Facebook

Læs her, hvordan du dropper Facebook og i stedet anvender nogle brugervenlige alternativer, så du stadig kan være social på nettet.


Nyheder fra Computerworld

Teaser billede

Galleri: De fedeste håndholdte gennem 40 år

Her har du de mest banebrydende håndholdte computere gennem alle tider.


Kurser
Samarbejdspartnere

Udgiver · © 2012 IDG Danmark A/S · Hørkær 18 · 2730 Herlev · Tlf.: 77 300 300 · Fax: 77 300 301 · Brug af personoplysninger