test05.c 635 B

1234567891011121314151617181920212223242526272829303132333435
  1. #include "unpxti.h"
  2. int listenfd, connfd;
  3. void
  4. sig_poll(int signo)
  5. {
  6. int n, flags;
  7. char buff[MAXLINE];
  8. printf("SIGPOLL, event = %d\n", t_look(connfd));
  9. n = T_rcv(connfd, buff, sizeof(buff), &flags);
  10. printf("received %d bytes, flags = %d\n", n, flags);
  11. }
  12. int
  13. main(int argc, char **argv)
  14. {
  15. if (argc == 2)
  16. listenfd = Tcp_listen(NULL, argv[1], NULL);
  17. else if (argc == 3)
  18. listenfd = Tcp_listen(argv[1], argv[2], NULL);
  19. else
  20. err_quit("usage: test05 [ <host> ] <service or port>");
  21. connfd = Xti_accept(listenfd, NULL, 0);
  22. Signal(SIGPOLL, sig_poll);
  23. Ioctl(connfd, I_SETSIG, S_RDNORM);
  24. for ( ; ; ) {
  25. pause();
  26. }
  27. }