Ein sehr einfaches C-Objekt, das die BSD-Socket-API umschließt, um eine UDP-Socket-Paar-Abstraktion bereitzustellen. Angenommen, Sie haben zwei bekannte Endpunkte, die über UDP miteinander kommunizieren müssen. Sie kennen den Port, auf dem Sie empfangen, und die Adresse/den Port des anderen Endpunkts. Sie können ein UDP-Paarobjekt definieren, das Ihren Endpunkt darstellt, und für diese Einrichtung einfach senden/empfangen.
Wenn Sie sich den Code ansehen, werden Sie feststellen, dass es sich größtenteils um ein Spielzeug handelt, da die Durchführung einer solchen Einrichtung sehr einfach ist ( bind() , connect() , send() , recv() ), für diese jedoch eine praktische Abstraktion sein kann die nicht so steckdosenaffin sind.
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 );Aufgrund der Fehlerprüfung sind die Beispielquellen ausführlicher als dieser Ausschnitt. Es werden drei Beispiele bereitgestellt:
example/echo_server.cexample/spam_hello_world.cbin/udpcat.cDer übliche CMake/Make-Tanz.
mkdir build
cd build
cmake ..
makeudpcat Beispiel Sobald Sie es erstellt haben, können Sie ganz einfach zwei udpcat -Prozesse dazu bringen, miteinander zu kommunizieren. Öffnen Sie einfach eine Sitzung als udpcat 12345 127.0.0.1 12346 und die andere als udpcat 12346 127.0.0.1 12345 . Alle an der Eingabeaufforderung eingegebenen Zeilen ( stdin Eingabe) werden an den anderen udpcat -Prozess gesendet und auf stdout ausgegeben.