Vous trouverez ici les exemples de Sockets en C
UDP et TCP
Un en TCP
socket_tuto.tar
TCP connectée
UDP non connectée
/*
socket()
connect()
recv()
close()
*/
#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <unistd.h>
#define PORT 9002
int main(int argc, char ** argv)
{
int network_socket;
int connection_status;
/* creation de la socket */
network_socket= socket( AF_INET, SOCK_STREAM, 0);
/* specication de l'adresse pour la socket */
struct sockaddr_in server_address;
server_address.sin_family = AF_INET;
server_address.sin_port = htons (PORT); /* format pour */
server_address.sin_addr.s_addr = INADDR_ANY;
connection_status = connect(network_socket, (struct sockaddr *) &server_address, sizeof (server_address));
if (connection_status == -1)
{
printf("Pas de connection possible \n");
return EXIT_FAILURE;
}
/* reception des donnees venant du server */
char server_response[256];
recv(network_socket, &server_response, sizeof(server_response), 0);
printf("La reponse du serveur est : %s\n",server_response);
/* fermer le prise */
close(network_socket);
return EXIT_SUCCESS;
}
#include <stdio.h>
#include <stdlib.h>
#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <unistd.h>
#define PORT 9002
int main(int argc, char ** argv)
{
char server_message[256] = "Voila notre message du server !";
int server_socket;
int client_socket;
/* creation de la socket */
server_socket= socket( AF_INET, SOCK_STREAM, 0);
struct sockaddr_in server_address;
server_address.sin_family = AF_INET;
server_address.sin_port = htons (PORT); /* format pour */
server_address.sin_addr.s_addr = INADDR_ANY;
/*bind */
bind(server_socket, (struct sockaddr*) &server_address, sizeof(server_address));
/* listen */
listen (server_socket, 5); /* backlog */
client_socket = accept (server_socket, NULL, NULL );
/* envoi du message */
send(client_socket, server_message, sizeof(server_message), 0);
close(server_socket);
return EXIT_SUCCESS;
}
Un en TCP avec un FORK (multi)
Références:
http://sdz.tdct.org/sdz/les-sockets.html
http://www.yolinux.com/TUTORIALS/Sockets.html#DESCRIPTION
exemple en plusieurs langage , un serveur web