K
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