首先找一个空文件夹,新建 tcp_echo_server.c
文件,写入如下内容:
#include "hv/hloop.h" void on_close(hio_t *io) {} void on_recv(hio_t *io, void *buf, int readbytes) { // 回显数据 hio_write(io, buf, readbytes); } void on_accept(hio_t *io) { // 设置close回调 hio_setcb_close(io, on_close); // 设置read回调 hio_setcb_read(io, on_recv); // 开始读 hio_read(io); } int main(int argc, char **argv) { if (argc < 2) { printf("Usage: cmd port\n"); return -10; } int port = atoi(argv[1]); // 创建事件循环 hloop_t *loop = hloop_new(0); // 创建TCP服务 hio_t *listenio = hloop_create_tcp_server(loop, "0.0.0.0", port, on_accept); if (listenio == NULL) { return -20; } // 运行事件循环 hloop_run(loop); // 释放事件循环 hloop_free(&loop); return 0; }点击复制复制失败已复制
文件下载:tcp_echo_server.c
编译:
$ gcc tcp_echo_server.c -o tcp_echo_server -Wl,-R/usr/local/lib -lhv点击复制复制失败已复制
之后运行:
$ ./tcp_echo_server 1234点击复制复制失败已复制
提示
1234
为监听的端口。
测试( Linux
环境):
$ nc 127.0.0.1 1234 < hello > hello点击复制复制失败已复制
windows
端可使用 telnet
作为客户端测试:
$ telent 127.0.0.1 1234