Winsock2 und SOCKET als return zurück geben lassen o.Ô



  • Hallo,

    Ich versuch schon den ganzen Abend von einer Funktion SOCKET zurück geben zu lassen. Nur will es irgendwie nicht hinhauen auch nicht mit Zeigern ... muss man das als Parameter zurück geben? ... oder gibts ne einfache lösung und es ist einfach nur zu spät für mich 😕

    Danke für jede Antwort

    NoQ





  • Ja, genau das Ding meine ich. Hast du ne ahnung wie ich es zurück geben muss?



  • Was meinst du? Die Funktion gibt dir etwas zurück, nicht umgekehrt 😕
    Da sind doch Beispiele, schau dir die mal an.



  • Na ja, irgendwie ist es mir schon klar... nur versteh ich nicht warum er mir trotzdem um die ecke springt wenn ich das ergebnis der funktion zurück geben will o.Ô

    Das ist der alte Code und ich versuch gerade den struct Connection in eine Class umzubauen nur leider hengt es an dem SOCKET irgendwie :-\ Ich könnte auch von außen direkt auf den socket zugreifen lassen, nur muss es nicht unbedingt sein.

    struct Connection {
       Connection() { 
          used=false; 
          socket=INVALID_SOCKET; 
       } 
       void set(SOCKET s, SOCKADDR_IN addr) { 
          this->socket=s; 
          this->addr=addr; 
          this->used=true; 
       } 
       void erase() { 
          this->used=false; 
          this->socket=INVALID_SOCKET; 
       } 
       bool used;   // connection benutzt ? 
       SOCKET socket; // socket 
       SOCKADDR_IN addr; // client addr
       char name[20];
       char password[20];
       int status;
    }; 
    
    // clients 
    Connection clients[MAX_CLIENTS]; 
    
    ....
    
    int sendToAllClients(char* msg) { 
       int rc,i; 
       for(i=0;i<MAX_CLIENTS;i++) { 
          if(!clients[i].used) 
             continue; 
          rc=send(clients[i].socket,msg,strlen(msg),0); // Hier hab ich Typen kompatibilitätsprobleme ::)
          if(rc==SOCKET_ERROR) { 
             cout << "Error: Sending to Client " << i << " failed: " << WSAGetLastError() << endl; 
          } 
       } 
       return 0; 
    }
    


  • Fehlermeldung? ...


Anmelden zum Antworten