Un objet C très simple qui encapsule l'API de socket BSD pour fournir une abstraction de paire de sockets UDP. Supposons en gros que vous disposez de deux points de terminaison connus qui doivent communiquer entre eux via UDP. Vous connaissez le port sur lequel vous recevez et l'adresse/le port de l'autre point final. Vous pouvez définir un objet paire UDP qui représente votre point final et simplement envoyer/recevoir pour cette configuration.
Si vous regardez le code, vous verrez que c'est surtout un jouet car effectuer une telle configuration est très simple ( bind()
, connect()
, send()
, recv()
), mais cela peut être une abstraction pratique pour ceux qui ne sont pas si avertis en matière de sockets.
struct udp_pair * pair = udp_pair_create ( recv_port , dest_ip4 , dest_port );
char buf [ 512 ];
while ( 1 ) {
ssize_t bytes_recvd = 0 ;
udp_pair_recv ( pair , ( void * ) buf , sizeof ( buf ), & bytes_recvd );
if ( bytes_recvd > 0 ) {
udp_pair_send ( pair , ( void * ) buf , bytes_recvd , NULL );
}
}
udp_pair_free ( pair );
Les exemples de sources sont plus détaillés que cet extrait en raison de la vérification des erreurs. Trois exemples sont fournis :
example/echo_server.c
example/spam_hello_world.c
bin/udpcat.c
La danse CMake/Make habituelle.
mkdir build
cd build
cmake ..
make
udpcat
Exemple Une fois construit, vous pouvez faire en sorte que deux processus udpcat
se parlent assez simplement. Ouvrez simplement une session sous le nom udpcat 12345 127.0.0.1 12346
et l'autre sous le nom udpcat 12346 127.0.0.1 12345
. Toutes les lignes saisies à l'invite ( stdin
input ) seront envoyées à l'autre processus udpcat
et imprimées sur stdout
.