Fehler bei ServerSocket Sendtext



  • Ausserdem solltest du deinen Code mal in zwei Zeilen zerlegen, um festzustellen, von welcher der beiden Listen (Connections[], Strings[]) die Exception tatsächlich verursacht wird.



  • Steht im TMemo auch wirklich was drin?
    Bzw. schaust du nach ob der Count 0 ist?

    Edit: Junix war schneller... 🙂

    [ Dieser Beitrag wurde am 27.06.2003 um 13:42 Uhr von MikeSPK editiert. ]



  • und noch checken ob der client wirklich erfolgreich connected hat.(zum Test ´nen SendText vom clienten aus ausführen)

    J0



  • Connected ist er auf jeden Fall. Kann ja normalen String senden. Ich hab mal noch ein bissl mehr Code.

    void __fastcall TForm1::FormCreate(TObject *Sender)
    {
      Server->Active = True;
    }
    //---------------------------------------------------------------------------
    
    void __fastcall TForm1::ServerClientError(TObject *Sender,
          TCustomWinSocket *Socket, TErrorEvent ErrorEvent, int &ErrorCode)
    {
      ErrorCode = 0;
    }
    //---------------------------------------------------------------------------
    
    void __fastcall TForm1::Memo1KeyPress(TObject *Sender, char &Key)
    {
      if (Key == VK_RETURN)
        {
          Server->Socket->Connections[2]->SendText
          (Memo1->Lines->Strings[Memo1->Lines->Count -1]);
        }
    }
    


  • Wieso Connections[2]?

    Ausserdem ist sowas Hard-Coded absolut gefährlich ich hoffe dir ist das bewusst.

    -junix



  • Ups!!! Sollte natürlich "Connections[0]" heissen Sorry



  • void __fastcall TForm1::Memo1KeyPress(TObject *Sender, char &Key)
    {
      AnsiString debugging = Memo1->Lines->Strings[Memo1->Lines->Count -1]);
      // wüsste echt gern ob bei dir das rausholen schon ne Exception bringt.
      // schliesslich knallts hier wenn du bei Count-1 Müll drin hast... also
      // prüfe lieber vorher ab ob du auch wirklich richtig zugreifen kannst  
      if (Key == VK_RETURN && Memo1->Lines->Count)
        {
          Server->Socket->Connections[0]->SendText
          (Memo1->Lines->Strings[Memo1->Lines->Count -1]);
        }
    }
    

    Edit: Kommentar

    [ Dieser Beitrag wurde am 27.06.2003 um 14:53 Uhr von MikeSPK editiert. ]



  • Ich habe das mal so übernommen...
    Jetzt ist es so, sobald ich eine Eingabe im Memofeld mache, kommt schon diese Exception. Hat jemand eine Lösung oder Idee???

    MfG



  • Was steht in Count des Memos?

    Edit:
    Oder vielleicht langts für dein Beispiel auch wenn du ihm deinen kompletten Memoinhalt rüberschiebst. (Memo1->Lines->Text oder CommaText)

    [ Dieser Beitrag wurde am 27.06.2003 um 15:24 Uhr von MikeSPK editiert. ]

    Edit2:
    Wer lesen kann...
    Hab nicht gesehen dass du in deinem Memo bei jedem KeyPress reinläufst...
    Dann ist mein Code natürlich Müll.. lösch mal die Zuweisung an Debugging raus..

    >> Vermutung meinerseits.. -> Vermutung war Schrott.. 🙂
    [ Dieser Beitrag wurde am 27.06.2003 um 15:32 Uhr von MikeSPK editiert. ]

    [ Dieser Beitrag wurde am 27.06.2003 um 15:36 Uhr von MikeSPK editiert. ]



  • Es soll der Text übergeben werden, den ich bei Memo in die einzelnen Zeilen einfüge... Ähnlich wie bei einem Instant Messenger.
    Ich schreibe praktisch in Memo1->Lines->String[0] einen Text und der soll an den Clienten gesendet werden.
    hab in den Lines Eigenschaften eine Leerzeile eingefügt

    Tommy



  • Hab den Fehler....

    Wenn ich meinen Server beende, sollte ich den Clienten auch mal neu starten... Dann geht dat auch... Aber trotzdem danke für die Mühe


Anmelden zum Antworten