Fehler bei Socketerstellung (connect) Konvertierung von 'sockaddr *' nach 'char *' nicht möglich



  • zeig mal mehr code



  • wdsl schrieb:

    AnsiString mySocket::connect(int Port, char* IP){
    // Verbinden
    memset(&address,0,sizeof(SOCKADDR_IN)); // zuerst alles auf 0 setzten
    address.sin_family=AF_INET;
    address.sin_port=htons(Port); // port 12345
    address.sin_addr.s_addr=inet_addr(IP); // zielrechner IP

    rc=connect(MySocket,(sockaddr*)&address, sizeof(SOCKADDR));//hier bekomme ich den fehler ((sockaddr*)&address ist falsch)
    if(rc==SOCKET_ERROR)
    {
    SockedError ="Fehler: connect gescheitert, fehler code:" + WSAGetLastError();
    return SockedError;
    }
    return 0;

    }

    sorry aber mit codetags funktioniert das highlighting nicht, schreib das connect einfach Connect... vielleicht geht's dann 😃

    rapso->greets();



  • Ok das ist meine Socket.cpp

    AnsiString mySocket::Init(){
            // Winsock starten
            rc=startWinsock();
            if(rc!=0)
            {
                    SockedError = "Fehler: startWinsock, fehler code:" + rc;
                    return SockedError;
            }
    
            // Socket erstellen
            MySocket=socket(AF_INET,SOCK_STREAM,0);
            if(MySocket==INVALID_SOCKET)
            {
                    SockedError = "Fehler: Der Socket konnte nicht erstellt werden, fehler code:" + WSAGetLastError();
                    return SockedError;
            }
            return 0;
    
    }
    
    AnsiString mySocket::connect(int Port, char* IP){        
            // Verbinden
            memset(&address,0,sizeof(SOCKADDR_IN)); // zuerst alles auf 0 setzten
            address.sin_family=AF_INET;
            address.sin_port=htons(Port); // port 
            address.sin_addr.s_addr=inet_addr(IP); // zielrechner IP
    
            rc=connect(MySocket,(struct sockaddr*)&address, sizeof(SOCKADDR));
            if(rc==SOCKET_ERROR)
            {
                    SockedError ="Fehler: connect gescheitert, fehler code:" + WSAGetLastError();
                    return SockedError;
            }
            return 0;
    
    }
    
    AnsiString mySocket::MySend(char* buf){
            send(MySocket, buf, strlen(buf), 0);
    }
    
    AnsiString mySocket::Myrecive(){
    }
    
    int mySocket::startWinsock()
    {
      WSADATA wsa;
      return WSAStartup(MAKEWORD(2,0),&wsa);
    }
    
    //Standart functionenen
    mySocket::~mySocket()
    {
            closesocket(s);
            WSACleanup();
    }
    
    mySocket::mySocket()
    {
            Init();
    }
    

    das ist meine socket.h

    #include <winsock2.h>
    #include <system.hpp>
    
    class mySocket{
    public:
            mySocket();
            ~mySocket();
    private:
            AnsiString rc;
            AnsiString SockedError;
            SOCKET MySocket;
            SOCKADDR_IN address;
    
            int startWinsock();
            AnsiString Init();
            AnsiString connect(int Port, char* IP);
            AnsiString MySend(char* buf);
            AnsiString Myrecive();
    
    };
    

    Brauchst du noch mehr?? Wobei das das include File zu allen Socket aufgaben ich wollte ja erstmal den Socket initialiesieren und dann das mit dem Dateiaustausch testen aber das initiailiersen klappt ja schon net ;-((

    mfg
    wdsl



  • wdsl schrieb:

    rc=connect(MySocket,(sockaddr*)&address, sizeof(SOCKADDR));

    Hmm, muss man da nicht statt sizeof(SOCKADDR) sizeof(sockaddr_in) nehmen ?
    ...aber das nur nebenbei...



  • Doch muss man habe ich auch ausgebessert. Danke dir aber mein Problem gibts immer noch ;-((



  • und mein vorschlag hilft auch net?
    sonst caste es auf void*



  • Habe deinen Fehler gefunden.

    AnsiString mySocket::connect(int Port, char* IP){

    [quote] rc=connect(MySocket,(struct sockaddr*)&address, sizeof(SOCKADDR));
    [/list]

    Ich hoffe dir fällt was auf.



  • hi,
    mag ja eine dumme idee sein, aber vielleicht nutzt es was, wenn du deine connect-Methode mal umbenennst z.b. in myConnect



  • *sichunsichtbarfühlt*

    hab ich das nicht schon geschrieben? 😮



  • @rapso
    huch....doch hast du....meine güte ich brauch ne brille 🙂
    ich tu's auch nie wieder!!!



  • @all Danke fuer die hilfe man alle functionen nenne ich um nur die wo der Fehler ist net 😞

    @rapso muss zugeben ich habe dich übersehen das lag daran das ich "a" post gelesen habe dann nicht aktualisert habe und meinen Post drunter gesetzt habe und das was oben war net mehr gelesen habe.

    Auf allen fällen gehts jetzt erstmal und nochmal vielen Dank an alle die mir geholfen haben



  • @rincewind
    ok, ich verzeihe dir ;D, aber nur weil dein nick so klasse ist 🙂

    /me scheibenwelt mag

    rapso->greets();



  • @rapso
    UGH!


Anmelden zum Antworten