Objek C yang sangat sederhana yang membungkus API soket BSD untuk menyediakan abstraksi pasangan soket UDP. Pada dasarnya katakanlah Anda memiliki dua titik akhir yang diketahui yang perlu berkomunikasi satu sama lain melalui UDP. Anda mengetahui port tempat Anda menerima dan alamat/port titik akhir lainnya. Anda dapat menentukan objek pasangan UDP yang mewakili titik akhir Anda dan cukup mengirim/menerima untuk pengaturan tersebut.
Jika Anda melihat kodenya, Anda akan melihat bahwa itu sebagian besar adalah mainan karena melakukan pengaturan seperti itu sangat mudah ( bind()
, connect()
, send()
, recv()
), tetapi ini bisa menjadi abstraksi yang berguna bagi mereka yang tidak begitu paham soket.
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 );
Sumber contoh lebih bertele-tele daripada cuplikan ini karena pemeriksaan kesalahan. Ada tiga contoh yang diberikan:
example/echo_server.c
example/spam_hello_world.c
bin/udpcat.c
Tarian CMake/Make yang biasa.
mkdir build
cd build
cmake ..
make
udpcat
Setelah dibangun, Anda bisa mendapatkan dua proses udpcat
untuk berbicara satu sama lain dengan cukup sederhana. Buka saja satu sesi sebagai udpcat 12345 127.0.0.1 12346
dan sesi lainnya sebagai udpcat 12346 127.0.0.1 12345
. Setiap baris yang dimasukkan saat diminta ( input stdin
) akan dikirim ke proses udpcat
lainnya dan dicetak ke stdout
.