BTS - GI Lycée Bab Sahara Guelmim
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
Le Deal du moment :
Réassort du coffret Pokémon 151 ...
Voir le deal

Envoyer des messages à un ordinateur dans le réseau

2 participants

Aller en bas

Envoyer des messages à un ordinateur dans le réseau Empty Envoyer des messages à un ordinateur dans le réseau

Message  h_mbarek Sam 4 Aoû - 13:30

salut
je veus envoyer un message d'un ordinateur à un autre ordinateur dans le réseau local mais sans utiliser la commande "net send" de MS DOS.
est il possible avec les API de windows?(si oui comment ça marche?)
mercie d'avance et bon chance a tous

h_mbarek

Nombre de messages : 11
Date d'inscription : 28/03/2007

Revenir en haut Aller en bas

Envoyer des messages à un ordinateur dans le réseau Empty Re: Envoyer des messages à un ordinateur dans le réseau

Message  rachid_kh75 Lun 6 Aoû - 7:26

ce que j'ai compris, c'est que tu veux réaliser une communication entre deux ordinateurs sous windows par programmation. si c'est le cas, il y plusieurs methodes:
--l'utilisation de l'API de Windows consacré à la programmation reseau et qui est encapsulée dans la DLL WINSOCK.DLL .
--l'utilisation des contrôles ActiveX tel que Winsock.
--il se peut que d'autres environnements de developpement dispose de leurs propres bibliotheques de fonctions de programmation reseau(JAVA, WinDev, Delphi, ...).

avant de detailler, soyons d'abord d'accord sur ceci (est ce que c'est le bonn sens ou non?)
rachid_kh75
rachid_kh75

Nombre de messages : 46
Age : 49
Localisation : Guelmim-Maroc
Date d'inscription : 30/03/2007

Revenir en haut Aller en bas

Envoyer des messages à un ordinateur dans le réseau Empty Re: Envoyer des messages à un ordinateur dans le réseau

Message  h_mbarek Lun 6 Aoû - 9:08

oui c'est le bon sens
mais comment ça marche
mercie d'avance

h_mbarek

Nombre de messages : 11
Date d'inscription : 28/03/2007

Revenir en haut Aller en bas

Envoyer des messages à un ordinateur dans le réseau Empty Re: Envoyer des messages à un ordinateur dans le réseau

Message  rachid_kh75 Lun 6 Aoû - 15:54

envoi et reception
D'abord il faut destinguer les communications connectées (utilisent TCP) et les communications non connectées (utilisent UDP).
Dans la suite, on n'abordera que les communications connectionless (non connectées) vue leur simplicité.
le systeme d'exploitation à utiliser est Windows XP muni de la version 2.2 de la DLL WINSOCK.DLL
Toute communication fait intervenir deux entités, à savoir le recepteur et l'expediteur.

Récepteur
il suffit d'attendre l'arrivée de données, la fonction qui permet de recevoir des données est definie comme suit :
int WSARecvFrom(
SOCKET s,
LPWSABUF lpBuffers,
DWORD dwBufferCount,
LPDWORD lpNumberOfBytesRecvd,
LPDWORD lpFlags,
struct sockaddr FAR * lpFrom,
LPINT lpFromlen,
LPWSAOVERLAPPED lpOverlapped,
LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine
);



Expediteur (Emetteur)
la fonction correspondante est:
int WSASendTo(
SOCKET s,
LPWSABUF lpBuffers,
DWORD dwBufferCount,
LPDWORD lpNumberOfBytesSent,
DWORD dwFlags,
const struct sockaddr FAR * lpTo,
int iToLen,
LPWSAOVERLAPPED lpOverlapped,
LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine
);


NB: avant de pouvoir appler ces fonctions il faut être capable de creer des sockets ( à voir dans la prochaine). Dans l'attente d'un exemple, tu peux effectuer des recherches en utilisant ces deux noms de fonctions.


Dernière édition par le Mar 7 Aoû - 6:38, édité 1 fois
rachid_kh75
rachid_kh75

Nombre de messages : 46
Age : 49
Localisation : Guelmim-Maroc
Date d'inscription : 30/03/2007

Revenir en haut Aller en bas

Envoyer des messages à un ordinateur dans le réseau Empty Re: Envoyer des messages à un ordinateur dans le réseau

Message  rachid_kh75 Mar 7 Aoû - 6:36

initialisation de Winsock

Chaque application de Winsock doit charger la version appropriée de la DLL de Winsock. Si vous ne chargez pas la bibliothèque de Winsock avant d'appeler une fonction de Winsock, la fonction renvoie un SOCKET_ERROR ; l'erreur sera WSANOTINITIALISED. Le chargement de la bibliothèque de Winsock est accompli en appelant la fonction WSAStartup, qui est définie comme suit:

int WSAStartup(
WORD wVersionRequested,
LPWSADATA lpWSAData
);


Le paramètre wVersionRequested est employé pour spécifier la version de la bibliothèque de Winsock que vous voulez charger. L'octet poids fort spécifie la version mineure de la bibliothèque demandée de Winsock, alors que l'octet de pods faible est la version principale.
Le paramètre lpWSAData est un pointeur à une structure LPWSADATA que WSAStartup remplit avec l'information relative à la version de la bibliothèque qu'elle charge :

typedef struct WSAData
{
WORD wVersion;
WORD wHighVersion;
char szDescription[WSADESCRIPTION_LEN + 1];
char szSystemStatus[WSASYS_STATUS_LEN + 1];
unsigned short iMaxSockets;
unsigned short iMaxUdpDg;
char FAR * lpVendorInfo;
} WSADATA, * LPWSADATA;


WSAStartup definie le premier champ, wVersion, à la version de Winsock que vous utiliserez. Le paramètre de wHighVersion est remplie avec la version la plus recente de la bibliothèque de Winsock disponible. Se rappeler que dans tous les deux champs l'octet de poids fort représente la version mineure de Winsock, et l'octet de poids faible est la version principale. Les champs szDescription et de szSystemStatus sont placées par la mise en place particulière du Winsock et ne sont pas vraiment utiles. Ne pas utiliser les deux prochain champs, iMaxSockets et iMaxUdpDg. Ils sont censés être le nombre maximum des sockets ouverts simultanément et de la taille maximum de datagramme ; cependant, pour trouver la taille maximum de datagramme vous devriez consulter l'information de protocole via WSAEnumProtocols. Le nombre maximum des sockets simultanés n'est pas de la magie que nombre-il dépend davantage des ressources physiques disponibles. En conclusion, le champ de lpVendorInfo est réservée pour l'information vendor-specific concernant la mise en place du Winsock. Cette zone n'est utilisée sur aucune plateforme Windows.

Quand votre application est n'utilise plus l'interface de Winsock, vous devriez appeler WSACleanup, qui permet au Winsock de libérer toutes les ressources allouées par Winsock et d'annuler n'importe quels appels en suspens de Winsock que votre application a faits. WSACleanup est défini ainsi:

int WSACleanup(void);
rachid_kh75
rachid_kh75

Nombre de messages : 46
Age : 49
Localisation : Guelmim-Maroc
Date d'inscription : 30/03/2007

Revenir en haut Aller en bas

Envoyer des messages à un ordinateur dans le réseau Empty Re: Envoyer des messages à un ordinateur dans le réseau

Message  h_mbarek Mar 7 Aoû - 13:17

weeeeeeeeeeeeeeeeeeee !!!!!
j'ai réusie merci beaucoup monsieur rachid,j'ai bien comprie votre idée
et j'ai utiliser les fonctions des sockets
et ça marchhhhhhhhhhhhhhhhhhhhhhhhhhhe
merci merci merci
il rèste maintenant l'execution de la socket au dimarrage du windows

h_mbarek

Nombre de messages : 11
Date d'inscription : 28/03/2007

Revenir en haut Aller en bas

Envoyer des messages à un ordinateur dans le réseau Empty Re: Envoyer des messages à un ordinateur dans le réseau

Message  rachid_kh75 Mer 8 Aoû - 10:22

le demarrage automatique d'applications au moment de demarrage dy systeme (windows) est commandé par la base de registre. pour ce faire, il suffit d'associer une valeur à la clé HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run pour chaque programme à lancer automatiquement. la valeur à affecter est la ligne de commande qui appelle le programme en question.
l' api windows permettant d'ecrire une valeur dans une clé du registre est
LONG RegSetValueEx(
HKEY hKey,
LPCSTR lpValueName,
DWORD Reserved,
DWORD dwType,
LPCBYTE lpData,
DWORD cbData
);

avant d'appler cette fonction, il faut recupere un handle de clé par la fonction :
LONG regOpenKeyEx(
HKEY hKey,
LPCSTR lpSubKey,
DWORD ulOptions,
REGSAM samDesire,
PHKEY phkResult);

et une fois terminé avec le handle recuperé, il faut le liberer via l'api suivante:
LONG RegCloseKey(HKEY hKey);
les api citées sont encapsulée dans la DLL advapi32.dll
rachid_kh75
rachid_kh75

Nombre de messages : 46
Age : 49
Localisation : Guelmim-Maroc
Date d'inscription : 30/03/2007

Revenir en haut Aller en bas

Envoyer des messages à un ordinateur dans le réseau Empty Re: Envoyer des messages à un ordinateur dans le réseau

Message  Contenu sponsorisé


Contenu sponsorisé


Revenir en haut Aller en bas

Revenir en haut

- Sujets similaires

 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum
Ne ratez plus aucun deal !
Abonnez-vous pour recevoir par notification une sélection des meilleurs deals chaque jour.
IgnorerAutoriser