udp_pair
0.1.1
UDP 소켓 쌍 추상화를 제공하기 위해 BSD 소켓 API를 래핑하는 매우 간단한 C 개체입니다. 기본적으로 UDP를 통해 서로 통신해야 하는 두 개의 알려진 엔드포인트가 있다고 가정해 보겠습니다. 수신하는 포트와 다른 끝점의 주소/포트를 알고 있습니다. 엔드포인트를 나타내는 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 );
예제 소스는 오류 검사로 인해 이 코드 조각보다 더 장황합니다. 세 가지 예가 제공됩니다.
example/echo_server.c
example/spam_hello_world.c
bin/udpcat.c
일반적인 CMake/Make 댄스입니다.
mkdir build
cd build
cmake ..
make
udpcat
예 일단 구축되면 두 개의 udpcat
프로세스를 통해 매우 간단하게 서로 통신할 수 있습니다. 한 세션은 udpcat 12345 127.0.0.1 12346
으로 열고 다른 세션은 udpcat 12346 127.0.0.1 12345
로 엽니다. 프롬프트( stdin
입력)에 입력된 모든 행은 다른 udpcat
프로세스로 전송되고 stdout
으로 인쇄됩니다.