| 12
 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
 
 | #include <stdio.h>
#include <stdlib.h>
#include <winsock2.h>
#pragma comment(lib, "ws2_32.lib")
 
int main(int argc, char *argv[])
{
    /* Je te conseille de mettre toutes tes déclarations en début de fichier,
    ce sera beaucoup plus compréhensible ;) */
    char buff[255] = {0};
    /* Les communications réseau utilisent les caractères \r\n pour marquer
    une fin de ligne. Si tu définis directement le contenu de ta chaine de
    caractères, pas besoin du [50], le compilateur s'en occupera... */
    char canal[] = "hello\r\n" ;
 
    WSADATA wsadata;
    SOCKET sock;
    SOCKADDR_IN sin;
 
    /* Utilises plutôt la version 2,2 ;) */
    WSAStartup(MAKEWORD(2,2),&wsadata);
 
    sock = socket(AF_INET, SOCK_STREAM, 0);
 
    sin.sin_addr.s_addr = inet_addr("127.0.0.1");
    sin.sin_family = AF_INET;
    sin.sin_port = htons(2007);
 
    /* Le client n'a pas besoin de bind ni de listen, il a juste besoin de
    socket() et de connect()
    bind(sock, (SOCKADDR*)&sin, sizeof(sin));
    */
 
    connect(sock, (SOCKADDR *)&sin, sizeof(sin));  
 
    /* Même remarque
    bind(sock, (SOCKADDR*)&sin, sizeof(sin));
    listen(sock, 10);
    */
 
    /* Ca fonctionnera mais je te conseille tout de même de controler
    l'envoi de données ;) */
    send(sock, canal, strlen(canal) + 1, 0);
 
    /* Pareil */
    recv (sock, buff, sizeof(buff), 0);
 
    printf("%s\n\n\n", buff);
 
    closesocket(sock);
    WSACleanup();
 
    system("PAUSE");	
    return 0;
} | 
Partager