Fehler mit Socket



  • // dOnline is n AnsiString und da steht entwerder 0 oder 1 drin!

    server->Socket->Connections[0]->SendText(dOnline);

    | warum kommt da : Der Index der Liste überschreitet das Maximum (0)

    was kann das bedeuten ?
    Warum kommt das 😉

    wie krieg ichs weg?

    Also an der stelle kommt der fehler... 100% 😉

    MFG
    Schinken



  • hast du vorher auch server->Active = true; bzw server->Open(); gemacht? ansonsten gibt es keine connection, also is das maximum überschritten 😉
    wenn das nich zutrifft dann gib ma code.



  • is alles beide gemacht!

    schau mal da, achja... Server: Daniel | Client: Reiner

    http://root.pixelmurder.de/fehlerWinSock.jpg
    😉

    MFG
    Schinken



  • Hi!

    Folgende Funktion habe ich mal geändert:

    void __fastcall TForm1::activate(TObject *Sender)
    {
      if(btnConn->Caption == "Verbinden")
      {
         if(rUser)
         {
            client->Address = serverIP->Text;
            client->Open();
         }
         else
         {
            server->Open();
         }
         btnConn->Caption = "Trennen";
         connStatus->Caption = "Verbunden";
      }
      else
      {
         if(rUser)
         {
            client->Close();
         }
         else
         {
            server->Close();
         }
         btnConn->Caption = "Verbinden";
         connStatus->Caption = "Getrennt";
    }
    

    Die Funktionen Open() und Close() setzen Active auf true und false. Es ist also unnötig Active direkt zu setzen. Darum hab ich die Zeilen mal entfernt.

    Das Zuweisungen wie

    dOnline = 0;
    

    funktionieren liegt nur daran, dass der Compiler einen impliziten Konstruktoraufruf von AnsiString mit einem int-Parameter durchführt, weil AnsiString diesen zufällig anbietet. Prinzipiell wäre

    dOnilne = "";
    

    wesentlich vernünfitger. 😉

    Desweiteren: server->Socket->Connections[0] ist ein Array, dass die einzelnen verbundenen Clients enthält. Ergo kann ohne Verbindung eine Clients keine Übertragung durchgeführt werden. Daher auch der Fehler "List Index out of Bounds (0)". Ergo muss ein Client sich erfolgreich bei deinem Server angemeldet haben, um mit dem Connections-Array arbeiten zu können.

    Und als Anmerkung noch etwas: Das Chat-Beispiel im &BCB%\Examples solltest du dir mal ansehen. 😉



  • thx etz gehts 😉


Anmelden zum Antworten