Sens0r
Messages postés35Date d'inscriptionlundi 23 janvier 2006StatutMembreDernière intervention23 mars 2006
-
5 févr. 2006 à 11:40
Sens0r
Messages postés35Date d'inscriptionlundi 23 janvier 2006StatutMembreDernière intervention23 mars 2006
-
6 févr. 2006 à 15:01
Bonjour,
j'ai un petit problème en ce qui concerne les sokets. Je veux
"construire" un programme qui me permet d'utiliser les fichiers etc des
Ordinateurs qui se trouvent dans mon réseau perso.
Après avoir cherché longtemps j'ai trouvé comment faire avec
Allocconsonle() etc. mais je na sais pas trop quoi faire avec les
handles, quelqu'un pourrait il m'aider?
Voici mon code:
#include
#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;
//--------------------PROBLEME-----------------------------------------
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-----------------------------------------
Que mettre à la place d'utilisation du handle?
Ce code est inspiré d'un code téléchargé sur ce site.