simple_tcp_server.c 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. /*************************************************
  2. Copyright (c) 2020
  3. All rights reserved.
  4. File name: simple_tcp_server.c
  5. Description:
  6. History:
  7. 1. Version:
  8. Date: 2020-12-05
  9. Author: WKJay
  10. Modify:
  11. *************************************************/
  12. #include <rtthread.h>
  13. #include <stdio.h>
  14. #include "netserver.h"
  15. static int netserver_readable_cb(ns_session_t *ns, void *data, int sz) {
  16. int ret = 0;
  17. ret = netserver_write(ns, data, sz);
  18. return ret;
  19. }
  20. int tcp_server_init(void) {
  21. netserver_opt_t opts;
  22. netserver_mgr_t *mgr = NULL;
  23. rt_memset(&opts, 0, sizeof(opts));
  24. opts.max_conns = 3;
  25. opts.listen_port = 3333;
  26. /* disconnect connection after one minute no data input */
  27. opts.session_timeout = 1 * 60 * 1000;
  28. /* register callback function*/
  29. opts.callback.data_readable_cb = netserver_readable_cb;
  30. /* create netserver manager object */
  31. mgr = netserver_create(&opts, 0);
  32. if (mgr == NULL) {
  33. printf("create simple tcp server manager failed.\r\n");
  34. return -1;
  35. }
  36. /* start netserver */
  37. if (netserver_start(mgr) == 0) {
  38. printf("start simple tcp server on port %d.\r\n", opts.listen_port);
  39. return 0;
  40. } else {
  41. printf("start simple tcp server error.\r\n");
  42. return -1;
  43. }
  44. }
  45. MSH_CMD_EXPORT(tcp_server_init,tcp server init);