Problem mit sockets und handle



  • Hallo,

    ich bin dabei ein Programm zu schrieben das mir mit sockets erlaubt auf alle Rechner meines eigenen Netzes zu arbeiten, was über die cmd erfolgen soll.

    Nachdem ich viel gesucht habe usw bin ich auf ausdr¨cke we allocconsole usw gestossen, allerd dings weiss ich jetzt nicht ob mein Programm halbwegs richtig ist und ob was ich in den Handle eingeben soll.

    Ich würde mich über Hilfe freuen.

    Hier ist mein code:

    also so langsam komm ich mir blöde vor... immer hier die experten zu nerven...
    
    Ich poste mal den mehr code denke ich denn ich krieg es einfach nicht auf die Reihe.
    Ich weiss nicht genau wo ich was hinschreiben soll... also mein code sieht jetzt so aus:
    
    C++:
    #include <iostream>
    #include <conio.h>
    #include <winsock2.h>
    #include <stdio.h>
    #include <stdlib.h>
    #include <Windows.h> //fir AllocConsole
    
    using std::cout;
    using std::cin;
    using std::endl;
    
    int main(int argc, char *argv[])
    {
        char Buffer[1024]; //Mise en place d'un buffer pour les messages que l'on s'envoit
        cout<<"Client[version 1.0.0.1]"<<endl;
        cout<<"Crée le "<<__DATE__<<" à "<<__TIME__<<endl<<endl<<endl; //Donne la date et l'heure de la création
        WSADATA WSAData;  
        if((WSAStartup(0x0202, &WSAData))!=0) //Mise en place du WSAStartup
        {
            cout<<"[-]WSAStartup Erreur:"<<WSAGetLastError()<<endl; //En cas d'erreur:
            getch(); //Le fichier bloque et ferme
            return -1;
        }
        cout<<"[+]WSAStartup réussi"<<endl;
    
        char IP[70]; //Mise en place d'un buffer pour stocker l'IP ou le nom de l'hote
        cout<<"[?]IP ou nom de domaine de destination: ";
        cin>>IP; //L'utilisateur entre son adresse
        HOSTENT * Hote;    
        if((Hote = gethostbyname(IP))==NULL) // Cette condition verifie si l'hote existe
        {
            cout<<"[-]Erreur: Résolution de l'hote impossible.\n\a"<<endl;
            getch(); //En cas d'erreur le fichier dit que la résolution de l'hote est impossible
            return -1; //Fermeture
        }    
        cout<<"[+]Résolution de l'hote réussi."<<endl;
    
        SOCKET W_IP;
        if((W_IP = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP))==-1) //Création du socket
        {
            cout<<"[-]Erreur: Impossible de créer le socket.\n\a"<<endl;
            getch();
            return -1;
        }
        cout<<"[+]Création du socket réussie."<<endl;
    
        IN_ADDR Adresse;
        SOCKADDR_IN SockAddrIn;
        memcpy(&Adresse, Hote -> h_addr, Hote -> h_length);
        SockAddrIn.sin_family = AF_INET; //Type de connection: TCP
        SockAddrIn.sin_port = htons(6667); //Port avec lequel le programme va se connecter
        SockAddrIn.sin_addr = Adresse; //Adresse de destination
        if((connect(W_IP, (SOCKADDR *)&SockAddrIn, sizeof(SockAddrIn)))!=0) //Connection
        {
            cout<<"[-]Impossible de se connecter.\n\a"<<endl; //Si il est impossible de se connecter
            getch();
            return -1; //Fermeture
        }    
        send(W_IP,"C",1,0); //Envoi d'un octet en tant que test
        cout<<"[+]Connection réussie."<<endl;
       //--------------------Nei-----------------------------------------
            AllocConsole();
            HANDLE hIn;
            hIn = GetStdHandle(STD_INPUT_HANDLE);
            if (hIn != INVALID_HANDLE_VALUE)
            {
            // Utilisation du handle.
            }
    
            HANDLE hOut;
            hOut = GetStdHandle(STD_OUTPUT_HANDLE);
            if (hOut != INVALID_HANDLE_VALUE)
            {
            // Utilisation du handle.
            }
    
        //-------------------Nei-----------------------------------------
    

    Also ich hab jetzt mit dem was unter //----------nei---------- steht die meisten Probleme. Ich denke syntax müsste stimmen. Aber was genau muss ich jetzt da rein schreiben? Ich muss irgendwo den buffer reinschreien, wahrscheinlich in STD_INPUT oder?

    Hoffe dass es nichts ausmacht dass die Kommentare auf deutsch, frnzösisch und luxemburgisch sind. Wenn das ein Problem ist kann ich sie übersetzen...

    Würd mich über etwas hilfe freuen.

    mfg
    kabel


Anmelden zum Antworten