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
|
#include <stdio.h>
#include <winsock2.h>
#include <string.h>
main(void)
{
WSADATA WSAData; // Initialisation des variables
int start_wsa;
int serveur_socket, client_socket;
struct sockaddr_in ip_serveur, ip_client;
int port = 1000;
int ip_serveur_size;
int envoyer, recevoir;
char *message;
char buffer[512];
int rec;
start_wsa = 1;
if((start_wsa = WSAStartup(MAKEWORD(2,0), &WSAData)) != 0) {
printf("Erreur : Initialisation de winsock impossible \n");
return 0; }
memset(&ip_serveur, 0, sizeof(ip_serveur));
ip_serveur.sin_addr.s_addr = htons(INADDR_ANY);
ip_serveur.sin_family = AF_INET;
ip_serveur.sin_port = htons(port);
if((serveur_socket = socket(AF_INET, SOCK_STREAM, 0)) == INVALID_SOCKET){
printf("Erreur : Création de la socket impossible \n");
return 0;
}
bind(serveur_socket, (struct sockaddr *)&ip_serveur, sizeof(ip_serveur));
listen(serveur_socket, 0);
ip_serveur_size = sizeof(ip_client);
if((client_socket = accept(serveur_socket,
(struct sockaddr *)&ip_client,
&ip_serveur_size)) == -1) {
printf("Erreur : Connexion avec le client impossible\n");
return 0;
}
printf("Connecte a l'hote\n");
printf("Tapez votre message\n\n");
do
{
scanf("%s", buffer);
if ((envoyer = write(client_socket,buffer, 512)) == -1) {
printf("Erreur : Envoi de \"%s\" impossible", buffer);
return 0;
}
if ((recevoir = read(client_socket,buffer, 512)) == -1) {
printf("Erreur : Reception des donnees impossible");
return 0;
}
printf("Client : %s\n", buffer);
}
while (start_wsa > 0);
return 0;
} |
Partager