Bonjour,

Et oui c'est encore moi ... j'ai encore une petite question comment faire pour que le serveur affiche son IP , sachant que je suis sous windows et que j'utilise le protocole TCP/IP, le code est celui du tuto (toujours ^^) :

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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
#include <stdio.h>
#include <winsock2.h>
 
int main()
{
    WSADATA wsaData;
 
    if (WSAStartup(MAKEWORD(2, 0), &wsaData) != 0)
        printf("La fonction WSAStartup a echoue.\n");
    else
    {
        SOCKET s_server;
        printf("Creation du server .");
        s_server = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP);
        if (s_server == INVALID_SOCKET)
            printf("La fonction socket a echoue.\n");
        else
        {
            SOCKADDR_IN server;
 
            ZeroMemory(&server, sizeof(server));
            server.sin_family       = AF_INET;
            server.sin_addr.s_addr  = htonl(INADDR_ANY);
            server.sin_port         = htons(3500);
 
            if (bind(s_server, (SOCKADDR *)&server, sizeof(server)) == SOCKET_ERROR)
                printf("La fonction bind a echoue.\n");
            else
            {
                if (listen(s_server, 0) == SOCKET_ERROR) /* listen : commencer l'ecoute */
                    printf("La fonction listen a echoue.\n");
                else
                {
                    SOCKET s_client;
                    SOCKADDR_IN client;
                    int csize = sizeof(client);
 
                    s_client = accept(s_server, (SOCKADDR *)&client, &csize);
 
                    if (s_client == INVALID_SOCKET)
                        printf("La fonction accept a echoue.\n");
                    else
                    {
                        char buffer[100];
 
                        printf("Le client %s s'est connecte !\n", inet_ntoa(client.sin_addr));
 
                        send(s_client, "Bonjour", (int)strlen("Bonjour") + 1, 0);
 
                        recv(s_client, buffer, sizeof(buffer), 0);
                        printf("%s\n", buffer);
 
                        closesocket(s_client);
                    }
                }
            }
 
            closesocket(s_server);
        }
 
        WSACleanup();
    }
 
    return 0;
}
J'ai essayé de rajouter cela dans mon code :

printf("%s",inet_ntoa((server).sin_addr.s_addr));

Mais sa me retournai 0.0.0.0 ... , j'ai également vu que quelqu'un avait posé une question similaire ici mais apparament celui ci ne répond plus à son propre post ^^ . Je suppose que cela doit etre assez simple, mais je ne trouve pas comment faire ??

Merci pour votre futur aide , et encore désolé de poser une question de ... newbie .