Atlanted a écrit :
Ok merci j'ai réussi. Parcontre pour le port ça a l'air différent car sur le même principe ça ne fonctionne pas.
|
Code :
- #include "port_serie.h"
- //#pragma comment(lib, "wsock32.lib" )
- int sock(SOCKET *pt_descripteur, char *adresse, int port)
- {
- WSADATA wsaData; // Initialisation d'une variable WSADATA
- int res;
- struct sockaddr_in sock;
- // char *adresse = "192.168.0.1"; // Adresse du pc distant
- res = WSAStartup(MAKEWORD(1,0), &wsaData);
- *pt_descripteur = socket(AF_INET, SOCK_STREAM,IPPROTO_TCP);
- if (*pt_descripteur != SOCKET_ERROR)
- {
- sock.sin_family = AF_INET;
- sock.sin_port = htons(port); // Définition de port
- sock.sin_addr.s_addr = inet_addr(adresse);
- }
- if(connect(*pt_descripteur, (struct sockaddr*) (&sock), sizeof(sock)) == SOCKET_ERROR)
- errors();
- return 0;
- }
|
Tu appelles la fonction "sock" en lui passant en 2° paramètre la chaîne "x.y.z.t" et en 3° le n° de port
Sinon, petite remarque, dans ton 1er code, tu as écrit ceci
Je pense qu'il vaut mieux écrire ceci
Code :
- char adresse[] = "192.168.0.1";
|
Dans le premier cas, tu définis un pointeur pointant vers une zone statique de ta mémoire probablement invariable. Tu ne peux pas modifier le contenu de "*adresse" (si jamais t'en avais envie).
Dans le 2° cas, tu définis un tableau d'octets suffisemment grand pour contenir ta chaîne et tu peux le modifier ensuite.
Dans tous les cas, le fonctionnement de ta fonction reste le même...
---------------
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche.