libhv_echo.c 637 B

12345678910111213141516171819202122232425262728293031
  1. #include "hv/hloop.h"
  2. void on_close(hio_t* io) {
  3. }
  4. void on_recv(hio_t* io, void* buf, int readbytes) {
  5. hio_write(io, buf, readbytes);
  6. }
  7. void on_accept(hio_t* io) {
  8. hio_setcb_close(io, on_close);
  9. hio_setcb_read(io, on_recv);
  10. hio_read(io);
  11. }
  12. int main(int argc, char** argv) {
  13. if (argc < 2) {
  14. printf("Usage: cmd port\n");
  15. return -10;
  16. }
  17. int port = atoi(argv[1]);
  18. hloop_t* loop = hloop_new(0);
  19. hio_t* listenio = hloop_create_tcp_server(loop, "0.0.0.0", port, on_accept);
  20. if (listenio == NULL) {
  21. return -20;
  22. }
  23. hloop_run(loop);
  24. hloop_free(&loop);
  25. return 0;
  26. }