CAsyncSocket und Unicode



  • Aha!
    Jetzt klappts!

    Vielen Dank! Super. 😉



  • Ich schließe mich hier mal an.

    Sender:

    CString lo(_T(""));
    lo.Format(_T("s;%4f;%4f;%s"),_T("AAA;BBB;CCCC;DDD;EEEE"),  m_GPS_Position.dblLatitude, m_GPS_Position.dblLongitude, _T("FFFF"));
    
    Send(lo,lo.getLength()*sizeof(TCHAR));
    

    Empfänger:

    TCHAR *pBuf= new TCHAR[1025];
    int iLen;
    	iLen=this->sockets[sockpos].Receive(pBuf,1024*sizeof(TCHAR))/sizeof(TCHAR);
    pBuf[iLen]=NULL;
    CString strData(pBuf);
    

    Soweit so gut. Allerdings kommt nie das an was ankommen soll. Über die Leitung wird allerdings alles übertragen (nachgeschaut mit Wireshark).

    Jemand ne Idee?



  • Holst du auch über den richtigen Socket ab? So wie dein konstrukt aussieht hast du ja mehrere davon, nur so mal als Vermutung, denn anhand deiner 3 Zeilen Quelltext und der aussage es wird richtig übertragen aber es kommt net alles an, müsste man schon ne Kristallkugel haben und meine is leider zur Zeit in der Werkstatt



  • das socket stimmt 🙂

    es kommt folgendes an "AAA;BBB;CCCC;DDD;EEEE"
    danach bricht er einfach ab 🙂

    komisch ist auch wenn ich einen festen String übergebe also beispielsweise

    CString a(_T("AAAABBBBCCCDDD4.3333CCCCCC5.6666"));
    

    kommt alles an, also der komplette String.



  • kann es vielleicht sein das alles ankommt du aber ne 0 zwischendrin hast (warum auch immer nur mal ins blaue vermutet) und du deswegen net alles im string hast? Hast du mal ilen der receive überprüft, ob das mit der versendeten größe übereinstimmt?



  • hm scheint echt so zu sein. fraglich nur wo sie herkommt.



  • evert schrieb:

    hm scheint echt so zu sein. fraglich nur wo sie herkommt.

    na die Frage kannst nur du beantworten, aber wenn du mal den Debuger bemühst könnte man das raus finden, vielleicht schleicht der sich schon beim senden rein? Dein Wireshark wird dir doch bestimmt die Daten auch anzeigen können, also irgendwo wird sich das ja fiden lassen



  • Beim Senden sind sie definitiv schon drin 🙂

    werd morgen mal genauer nachschauen



  • Die 0 wird definitiv schon mitübertragen. im CString kann ich sie allerdings nicht finden.

    Der String wird wie oben beschrieben zusammen gesetzt.
    Sehr merkwürdig alles



  • Problem gelöst

    mit CStringA funzt alles herrlich


Anmelden zum Antworten