server.c 839 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. #include <stdio.h>
  2. #include <sys/types.h>
  3. #include <sys/fcntl.h>
  4. #include <sys/errno.h>
  5. #include <sys/socket.h>
  6. #include <netinet/in.h>
  7. extern int errno;
  8. #define SERV_TCP_PORT 6000
  9. main()
  10. {
  11. int fd;
  12. struct sockaddr_in my_addr;
  13. void echo_serv (int);
  14. bzero((char *) &my_addr, sizeof(my_addr));
  15. my_addr.sin_family = AF_INET;
  16. my_addr.sin_addr.s_addr = htonl (INADDR_ANY);
  17. my_addr.sin_port = htons(SERV_TCP_PORT);
  18. fd = net_open ("/dev/udp", O_RDWR);
  19. fd = net_bind (fd, &my_addr, sizeof (struct sockaddr_in));
  20. echo_serv (fd);
  21. exit (0); /* not reached */
  22. }
  23. void
  24. echo_serv (int fd)
  25. {
  26. struct sockaddr_in fm_addr;
  27. char buf[512];
  28. int n;
  29. while (1)
  30. {
  31. n = net_recv (fd, buf, sizeof (buf),
  32. &fm_addr, sizeof (struct sockaddr_in));
  33. net_send (fd, buf, n,
  34. &fm_addr, sizeof (struct sockaddr_in));
  35. }
  36. }