str_echo08.lc 1.2 KB

1234567891011121314151617181920212223
  1. #include "unp.h"## 1 ##src/tcpcliserv/str_echo08.c##
  2. void## 2 ##src/tcpcliserv/str_echo08.c##
  3. str_echo(int sockfd)## 3 ##src/tcpcliserv/str_echo08.c##
  4. {## 4 ##src/tcpcliserv/str_echo08.c##
  5. long arg1, arg2;## 5 ##src/tcpcliserv/str_echo08.c##
  6. ssize_t n;## 6 ##src/tcpcliserv/str_echo08.c##
  7. char line[MAXLINE];## 7 ##src/tcpcliserv/str_echo08.c##
  8. for (;;) {## 8 ##src/tcpcliserv/str_echo08.c##
  9. if ((n = Readline(sockfd, line, MAXLINE)) == 0)## 9 ##src/tcpcliserv/str_echo08.c##
  10. return; /* connection closed by other end */## 10 ##src/tcpcliserv/str_echo08.c##
  11. if (sscanf(line, "%ld%ld", &arg1, &arg2) == 2)## 11 ##src/tcpcliserv/str_echo08.c##
  12. snprintf(line, sizeof(line), "%ld\n", arg1 + arg2);## 12 ##src/tcpcliserv/str_echo08.c##
  13. else## 13 ##src/tcpcliserv/str_echo08.c##
  14. snprintf(line, sizeof(line), "input error\n");## 14 ##src/tcpcliserv/str_echo08.c##
  15. n = strlen(line);## 15 ##src/tcpcliserv/str_echo08.c##
  16. Writen(sockfd, line, n);## 16 ##src/tcpcliserv/str_echo08.c##
  17. }## 17 ##src/tcpcliserv/str_echo08.c##
  18. }## 18 ##src/tcpcliserv/str_echo08.c##