Advertisement
Guest User

Untitled

a guest
Nov 18th, 2019
209
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.50 KB | None | 0 0
  1. /**
  2. * Nonstop Networking
  3. * CS 241 - Fall 2019
  4. */
  5. #include "common.h"
  6. #include <stdio.h>
  7. #include <stdlib.h>
  8. #include <string.h>
  9. #include <unistd.h>
  10. #include <errno.h>
  11. #include <arpa/inet.h>
  12.  
  13.  
  14.  
  15. ssize_t read_all_from_socket(int socket, char *buffer, size_t count) {
  16. // Your Code Here
  17. size_t bytes_read = 0;
  18. size_t bytes_remain = count;
  19. while (bytes_read < count) {
  20. //puts("fdsklj");
  21. ssize_t ret = read(socket, buffer + bytes_read, bytes_remain);
  22. if (ret == 0) {
  23. return 0;
  24. } else if (ret == -1) {
  25. if (errno == EINTR) {
  26. errno = 0;
  27. continue;
  28. } else {
  29. //puts(strerror(errno));
  30.  
  31. return -1;
  32. }
  33. }
  34. bytes_read += ret;
  35. bytes_remain -= ret;
  36. }
  37. return bytes_read;
  38. }
  39.  
  40. ssize_t write_all_to_socket(int socket, const char *buffer, size_t count) {
  41. size_t bytes_written = 0;
  42. size_t bytes_remain = count;
  43. while (bytes_written < count) {
  44. //puts("dslk");
  45. ssize_t ret = write(socket, buffer + bytes_written, bytes_remain);
  46. if (ret == 0) {
  47. return 0;
  48. } else if (ret == -1) {
  49. if (errno == EINTR) {
  50. errno = 0;
  51. continue;
  52. } else {
  53. return -1;
  54. }
  55. }
  56. bytes_written += ret;
  57. bytes_remain -= ret;
  58. }
  59. // Your Code Here
  60. return bytes_written;
  61. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement