Pustaka jaringan lintas platform header C99 file tunggal.
Perpustakaan | Keterangan | LOK | Versi Terbaru |
---|---|---|---|
udp.h | Server dan Klien Asinkron pada koneksi UDP, berguna untuk VOIP dan server game. | 573 | 1.0.0 |
https.h | HTTPS asinkron dan Klien HTTP menggunakan 1 panggilan fungsi untuk mengeluarkan permintaan GET. | 438 | 1.0.0 |
Yang perlu Anda lakukan untuk menggunakan perpustakaan ini adalah mengunduhnya dan meletakkannya di direktori yang sama dengan kode sumber Anda, lalu mencari fungsi yang didefinisikannya di atas (ekspor) dan contoh yang diberikan! Letakkan ini di bagian atas tempat Anda ingin menggunakannya:
#define UDP_IMPLEMENTATION // or HTTPS_IMPLEMENTATION
#include "udp.h" // or "https.h"
atau secara opsional, letakkan itu sendiri di file sumber dan buat secara terpisah.
Berikut pengenalan sederhana untuk masing-masing perpustakaan:
#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 );
}
Fungsi udp_recv()
dan udp_recv_from()
tidak memblokir dan mengembalikan respons dalam struct udp_conn
, yang berisi buffer dengan data dan panjangnya. Anda dapat meletakkan fungsi-fungsi ini di mana saja, termasuk di dalam game loop Anda dan fungsi ini akan menangani penyelesaian permintaan di latar belakang sebelum Anda siap membaca!
#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 );
}
Lihat 200 baris lintas platform UDP VOIP Server dan Klien di direktori voip!
Ada lebih banyak contoh di direktori contoh. Yang terkenal adalah server UDP dan klien HTTPS.
Perpustakaan ini dirancang agar efisien dan mudah digunakan pada saat yang bersamaan. Tolok ukur segera hadir™.
Pustaka UDP hanyalah pembungkus panggilan sistem asli, yang membuatnya secepat pustaka UDP lainnya.
Pustaka HTTPS secepat cURL, dan mendukung banyak permintaan bersamaan hampir tanpa overhead.
udp.h
mendukung semua sistem dengan soket BSD, tidak menggunakan fungsi khusus Linux atau Windows. https.h
saat ini merupakan pembungkus WinHTTP, jadi hanya Windows yang didukung, namun dukungan cURL akan segera hadir.
Semua perpustakaan ini memiliki lisensi ganda di bawah Lisensi MIT dan Domain Publik. Anda dapat memilih lisensi yang paling sesuai dengan proyek Anda. Lisensi MIT adalah lisensi permisif yang singkat dan langsung pada sasaran. Lisensi Domain Publik adalah lisensi yang membuat perangkat lunak tersedia untuk umum secara gratis dan tanpa hak cipta.
- Ada banyak alternatif seperti cute_headers 'cute_tls dan cute_net. Mengapa saya harus menggunakan nyamanweb?
Pengalaman saya menggunakan cURL, cute_headers dan banyak solusi lain untuk berinteraksi dengan web di C tidaklah menyenangkan, terutama dalam program dan permainan biasa. Sebagian besar perpustakaan memiliki banyak sekali boilerplate dan menerapkan banyak batasan bahkan untuk membuat permintaan HTTP sederhana. Saya sedang mencari solusi sederhana yang tidak membuat saya terganggu saat mencoba mencari tahu semantik perpustakaan dan web setiap kali saya ingin melakukan sesuatu yang sederhana, dan berasal dari bahasa lain dengan API HTTPS sederhana saya melihat banyak ruang untuk perbaikan . cozyweb
akan menjadi kumpulan pustaka C paling sederhana yang dapat Anda gunakan untuk berinteraksi dengan web guna mendapatkan sumber daya atau file untuk game atau program kasual Anda.
- Perpustakaan ini tidak sesuai dengan kebutuhan saya. Apa yang lainnya?