天天看點

C++ 服務端開發 libuv學習C++ 服務端開發 libuv學習

C++ 服務端開發 libuv學習

入門

libuv 的使用

參照征服優雅、高效的Libuv庫

最簡單的服務端(官方demo)
#include "Test/ProtocolTest.h"
#include <uv.h>
#define DEFAULT_PORT 19999

void on_new_connection(uv_stream_t* server, int status) {
	printf("dasjldjl");
}

int main(){
	uv_loop_t* loop = uv_default_loop();

	uv_tcp_t server;
	uv_tcp_init(loop, &server);
	sockaddr_in addr;
	uv_ip4_addr("0.0.0.0", DEFAULT_PORT,&addr);

	uv_tcp_bind(&server, (const struct sockaddr*)&addr, 0);
	int r = uv_listen((uv_stream_t*)&server, 128, on_new_connection);
	if (r) {
		fprintf(stderr, "Listen error %s\n", uv_strerror(r));
		return 1;
	}
	return uv_run(loop, UV_RUN_DEFAULT);
}
           
最簡單的用戶端(官方demo)
#include <iostream>
#include <uv.h>
#define DEFAULT_PORT 19999

void on_new_connection(uv_connect_t* req, int status) {}

int main() {
	uv_loop_t* loop = uv_default_loop();
	uv_tcp_t socket;
	uv_tcp_init(loop, &socket);
	
	uv_connect_t connect;
	sockaddr_in addr;
	uv_ip4_addr("127.0.0.1", DEFAULT_PORT, &addr);

	uv_tcp_connect(&connect, &socket, (const struct sockaddr*)&addr, on_new_connection);
}
           

繼續閱讀