udp_pair
0.1.1
BSD ソケット API をラップして UDP ソケット ペアの抽象化を提供する、非常に単純な C オブジェクト。基本的に、UDP 経由で相互に通信する必要がある 2 つの既知のエンドポイントがあるとします。受信しているポートと、もう一方のエンドポイントのアドレス/ポートがわかっています。エンドポイントを表す UDP ペア オブジェクトを定義し、そのセットアップに対して単純に送受信を行うことができます。
コードを見ると、このようなセットアップの実行は非常に簡単 ( bind()
、 connect()
、 send()
、 recv()
) であるため、ほとんどがおもちゃであることがわかりますが、これらのコードは、これらのユーザーにとっては便利な抽象化になる可能性があります。ソケットにあまり詳しくない人。
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 );
サンプル ソースは、エラー チェックのため、このスニペットよりも詳細になっています。次の 3 つの例が提供されています。
example/echo_server.c
example/spam_hello_world.c
bin/udpcat.c
いつもの CMake/Make ダンス。
mkdir build
cd build
cmake ..
make
udpcat
例構築すると、非常に簡単に 2 つのudpcat
プロセスを相互に通信させることができます。 1 つのセッションをudpcat 12345 127.0.0.1 12346
として開き、もう 1 つのセッションをudpcat 12346 127.0.0.1 12345
として開くだけです。プロンプト ( stdin
input) に入力された行はすべて、他のudpcat
プロセスに送信され、 stdout
に出力されます。