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 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100
| #include <winsock2.h>
typedef int socklen_t;
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
#define PORT 23
int main(void)
{
WSADATA WSAData;
int erreur = WSAStartup(MAKEWORD(2,2), &WSAData);
int continuer=1;
int i;
SOCKET sock0;
SOCKET sock1;
SOCKADDR_IN sin0;
SOCKADDR_IN sin1;
SOCKADDR_IN csin0;
SOCKADDR_IN csin1;
int recsize0 = sizeof sin0;
int recsize1 = sizeof sin1;
char prenom1[20]="Nico";
char prenom2[20]="Alban";
int sock_err;
sock0 = socket(AF_INET, SOCK_STREAM, 0);
printf("La socket %d est maintenant ouverte en mode TCP/IP\n", sock0);
printf("La socket %d est maintenant ouverte en mode TCP/IP\n", sock1);
sin0.sin_addr.s_addr = htonl(INADDR_ANY);
sin0.sin_family = AF_INET;
sin0.sin_port = htons(PORT);
sin1.sin_addr.s_addr = htonl(INADDR_ANY);
sin1.sin_family = AF_INET;
sin1.sin_port = htons(PORT);
bind(sock0, (SOCKADDR*) &sin0, recsize0);
listen(sock0, 5);
int crecsize0 = sizeof csin0;
SOCKET csock0 = accept(sock0, (SOCKADDR *) &csin0, &crecsize0);
bind(sock1, (SOCKADDR*) &sin1, recsize1);
listen(sock1, 5);
int crecsize1 = sizeof csin1;
SOCKET csock1 = accept(sock1, (SOCKADDR *) &csin1, &crecsize1);
while(1)
{
send(csock0, prenom1, sizeof(prenom1), 0);
send(csock1, prenom2, sizeof(prenom2), 0);
closesocket(csock0);
closesocket(csock1);
}
WSACleanup();
return EXIT_SUCCESS;
} |
Partager