단일 파일 C99 헤더 크로스 플랫폼 네트워킹 라이브러리.
도서관 | 설명 | LOC | 최신 버전 |
---|---|---|---|
udp.h | UDP 연결의 비동기 서버 및 클라이언트로 VOIP 및 게임 서버에 유용합니다. | 573 | 1.0.0 |
https.h | GET 요청을 발행하기 위해 1개의 함수 호출을 사용하는 비동기식 HTTPS 및 HTTP 클라이언트. | 438 | 1.0.0 |
이 라이브러리를 사용하기 위해 해야 할 일은 라이브러리를 다운로드하여 소스 코드와 동일한 디렉터리에 넣은 다음 상단에 정의된 함수(내보내기)와 제공된 예제를 살펴보는 것입니다! 이것을 사용하려는 위치의 상단에 넣으십시오.
#define UDP_IMPLEMENTATION // or HTTPS_IMPLEMENTATION
#include "udp.h" // or "https.h"
또는 선택적으로 소스 파일에 그 자체를 넣고 별도로 빌드하십시오.
각 라이브러리에 대한 간단한 소개는 다음과 같습니다.
#include <stdio.h>
#define UDP_IMPLEMENTATION
#include "udp.h"
int main () {
udp_conn * client = udp_connect ( udp_resolve_host ( "localhost" , "30000" , true, & ( udp_addr ){}), false);
if ( client -> error ) {
printf ( "Error %d: %sn" , client -> error , udp_error_str ( client -> error ));
return 1 ;
}
udp_send ( client , "Hello from client!" , sizeof ( "Hello from clie16!" ));
while (! udp_recv ( client )); // Wait for a response from the server.
printf ( "Received "%.*s"n" , ( int ) client -> data_len , ( char * ) client -> data );
udp_close_n_free ( client );
}
udp_recv()
및 udp_recv_from()
함수는 비차단 기능이며 데이터와 길이가 있는 버퍼가 포함된 udp_conn
구조체에 응답을 반환합니다. 게임 루프 내부를 포함하여 어디에나 이러한 기능을 배치할 수 있으며 읽을 준비가 되기 전에 백그라운드에서 요청 해결을 처리합니다!
#include <stdio.h>
#define HTTPS_IMPLEMENTATION
#include "include/https.h"
int main () {
https_req * req = https_get ( "https://picsum.photos/600/800" ); // http works too!
while ( req -> state == HTTPS_PENDING ); // Sleep(20); // Wait for the request to complete.
if ( req -> state != HTTPS_COMPLETE ) {
printf ( "Failed to get responsenStatus Code: %dnReason: %s" , req -> status_code ,
req -> req_failed_reason );
https_free ( req );
return 1 ;
}
printf ( "Status: %dn" , req -> status_code );
printf ( "Response Size: %un" , req -> data_len );
printf ( "Response: %.256sn" , ( char const * ) req -> data );
https_free ( req );
}
voip 디렉토리에서 200라인 크로스 플랫폼 UDP VOIP 서버 및 클라이언트를 확인하세요!
예제 디렉토리에는 더 많은 예제가 있습니다. 주목할만한 것은 UDP 서버와 HTTPS 클라이언트입니다.
이러한 라이브러리는 효율적이면서 동시에 사용하기 쉽도록 설계되었습니다. 벤치마크가 곧 출시됩니다™.
UDP 라이브러리는 기본 시스템 호출을 둘러싼 래퍼일 뿐이므로 다른 UDP 라이브러리만큼 빠릅니다.
HTTPS 라이브러리는 cURL만큼 빠르며 오버헤드가 거의 없이 많은 동시 요청을 지원합니다.
udp.h
BSD 소켓이 있는 모든 시스템을 지원하며 Linux 또는 Windows 관련 기능을 사용하지 않습니다. https.h
현재 WinHTTP에 대한 래퍼이므로 Windows만 지원되지만 cURL 지원은 곧 제공될 예정입니다.
이러한 라이브러리는 모두 MIT 라이센스 및 공개 도메인에 따라 이중 라이센스가 부여됩니다. 귀하의 프로젝트에 가장 적합한 라이센스를 선택할 수 있습니다. MIT 라이선스는 짧고 간결한 허용 라이선스입니다. 퍼블릭 도메인 라이선스는 소프트웨어를 저작권 없이 대중에게 무료로 제공하는 라이선스입니다.
- Cute_headers의 Cute_tls 및 Cute_net과 같은 많은 대안이 있습니다. 왜 cosyweb을 사용해야 하나요?
C에서 웹과 인터페이스하기 위해 cURL, Cute_headers 및 기타 여러 솔루션을 사용한 경험은 특히 캐주얼 프로그램과 게임에서 재미없었습니다. 대부분의 라이브러리에는 수많은 상용구가 있었고 간단한 HTTP 요청을 만드는 경우에도 수많은 제한 사항을 적용했습니다. 나는 간단한 일을 하고 싶을 때마다 라이브러리와 웹의 의미를 파악하려고 노력하는 데 방해가 되지 않는 간단한 솔루션을 찾고 있었고, 간단한 HTTPS API를 사용하여 다른 언어에서 왔을 때 개선의 여지가 많다는 것을 알았습니다. . cozyweb
게임이나 일반 프로그램에 대한 리소스나 파일을 얻기 위해 웹과 인터페이스하는 데 사용할 수 있는 가장 간단한 C 라이브러리 세트가 될 것입니다.
- 이 라이브러리는 내 필요에 맞지 않습니다. 다른 것들은 무엇입니까?