Bonjour,
Je suis actuellement sur un petit programme de chat à travers le net.
Je serais le serveur, j ai donc configurer ma box pour qu'elle redirige les connexions sur le port que j ai choisis(port 2000)puis je me suis inscris sur "dyndns" pour obtenir un nom de domaine afin que mon client puisse avoir mon IP.
Mon problème vient du fait que je n arrive pas a me connecter,
peut être cela vient il du fait que pour le moment je fait mes test en faisant tourne mon client et mon serveur sur le même pc???
voici mes debut de code:
serveur:
et mon client:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41 ////////////////SERVEUR////////////////////////////// #include <stdio.h> #include <stdlib.h> #include <winsock2.h> typedef int socklen_t; int main() { WSADATA WSAData; WSAStartup(MAKEWORD(2,2), &WSAData); SOCKADDR_IN sin; SOCKET sock; socklen_t recsize = sizeof(sin); SOCKADDR_IN csin; SOCKET csock; socklen_t crecsize = sizeof(csin); sock = socket(AF_INET, SOCK_STREAM, 0); sin.sin_addr.s_addr = htonl(INADDR_ANY); sin.sin_family = AF_INET; sin.sin_port = htons(2000); bind(sock, (SOCKADDR*)&sin, recsize); listen(sock, 5); csock = accept(sock, (SOCKADDR*)&csin, &crecsize); printf("ok"); WSACleanup(sock); return 0; }
J'ai vérifié du coté client j'arrive bien a obtenir mon ip a partir de mon "dyndns"
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34 //////////////CLIENT/////////////////// #include <stdio.h> #include <stdlib.h> #include <winsock2.h> int main (int argc, const char * argv[]) { int err; WSADATA WSAData; WSAStartup(MAKEWORD(2,2), &WSAData); HOSTENT *hote; hote = gethostbyname("monADDR.dyndns.org"); SOCKET sock; sock = socket(AF_INET, SOCK_STREAM, 0); SOCKADDR_IN sin; memcpy(&sin.sin_addr.s_addr,hote->h_addr_list[0],sizeof(sin.sin_addr.s_addr)); sin.sin_family = AF_INET; sin.sin_port = htons(2000); if(connect(sock, (SOCKADDR*)&sin, sizeof(sin)) != SOCKET_ERROR) { printf("\nConnexion à %s sur le port %d\n", inet_ntoa(sin.sin_addr), htons(sin.sin_port)); } closesocket(sock); WSACleanup(); }
merci d avance!!
Partager