Encapsulate Perpustakaan Jaringan Sederhana tentang Libevent untuk memfasilitasi pembangunan server dan klien TCP/UDP/UNIX.
Contoh Antarmuka:
int ts_accept_fun (int sfd, int cfd, struct sockaddr *addr, int addrlen)
{
fprintf (stderr, "[srv] terima srv_fd: %d, cli_fd: %d, addrlen: %d n", sfd, cfd, addrlen);
kembali 0;
}
// PKG adalah paket protokol lapisan aplikasi lengkap, headCMD digunakan oleh klien untuk menunjukkan protokol pembongkaran PKG
int ts_pkg_fun (int sock, struct sockaddr *addr, unsigned int addrlen, const char *pkg, unsigned int pkglen, headcmd int unsigned)
{
fprintf (stderr, "[srv] sock: %d, pkg: %s, pkg_len: %d, head_cmd: %d n", sock, pkg, pkglen, headcmd);
kembali 0;
}
int ts_close_fun (int sock)
{
fprintf (stderr, "[srv] cli sock: %d tutup n", kaus kaki);
kembali 0;
}
int ts_timer_fun ()
{
fprintf (stderr, "[srv] timer exec, waktu: %d n", waktu (null));
kembali 0;
}
void test_tcp_srv ()
{
const char *ip = "127.0.0.1";
port int unsigned = 1235;
ev_srv_init (& evsrv);
int iret = ev_srv_bind_ip (& evsrv, ip, port, ts_accept_fun, ts_pkg_fun, ts_close_fun, 0, -1, 5);
Yg_assert_ret (iret> 0,);
IRET = EV_SRV_ADD_TIMER (& EVSRV, TS_TIMER_FUN, 1000 * 3);
Yg_assert_ret (iret> = 0,);
ev_srv_run (& evsrv);
}
tes: