Guest User

Untitled

a guest
Jan 17th, 2019
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.23 KB | None | 0 0
  1. short connected = 1;
  2. do
  3. {
  4. // Send initial request on first pass
  5. // Afterwards send the resposne we were given
  6. n = write(sockfd, buffer, strlen(buffer));
  7. if (n < 0)
  8. error("Failed to send messege. Terminating.");
  9. printf("%sn", buffer);
  10. // Any errors?
  11. if (strcmp(buffer, "Session key does not match. Terminating.") == 0)
  12. error(buffer);
  13.  
  14. // Get session key response
  15. bzero(buffer, BUFFER_LENGTH);
  16. n = read(sockfd, buffer, BUFFER_LENGTH);
  17. if (n < 0)
  18. error("Could not fetch result. Terminating.");
  19.  
  20. printf("%sn", buffer);
  21. sleep(1);
  22. } while (connected == 1);
  23.  
  24. sockfd = socket(AF_INET, SOCK_STREAM, 0);
  25. if (sockfd < 0)
  26. {
  27. printf("Error opening socket.n");
  28. exit(0);
  29. }
  30.  
  31. // Taken from reference
  32. bzero((char *) &serv_addr, sizeof(serv_addr));
  33. portNumber = atoi(argv[1]);
  34. serv_addr.sin_family = AF_INET;
  35. serv_addr.sin_addr.s_addr = INADDR_ANY;
  36. serv_addr.sin_port = htons(portNumber);
  37. if (bind(sockfd, (struct sockaddr *) &serv_addr, sizeof(serv_addr)) < 0)
  38. {
  39. printf("ERROR on binding.n");
  40. close(sockfd);
  41. exit(0);
  42. }
  43.  
  44. // Add listner to socket and wait until we are given something to do
  45. // Taken from reference
  46. listen(sockfd, 5);
  47. clilen = sizeof(cli_addr);
  48. newsockfd = accept(sockfd, (struct sockaddr *) &cli_addr, &clilen);
  49. if (newsockfd < 0)
  50. {
  51. printf("ERROR on accept.n");
  52. close(sockfd);
  53. exit(0);
  54. }
  55.  
  56. // Get initial session key request
  57. bzero(buffer,BUFFER_LENGTH);
  58. n = read(newsockfd, buffer, BUFFER_LENGTH);
  59. if (n < 0)
  60. {
  61. printf("ERROR reading from socket.n");
  62. close(newsockfd);
  63. close(sockfd);
  64. exit(0);
  65. }
  66.  
  67. // ... a bunch of processing of data
  68.  
  69. n = write(newsockfd, response, lengthOfKey + 15 + 1);
  70. if (n < 0)
  71. {
  72. printf("ERROR writing to socket.n");
  73. close(newsockfd);
  74. close(sockfd);
  75. exit(0);
  76. }
  77.  
  78. close(newsockfd);
  79.  
  80. // Get the previous key(s) now (we hope)
  81. short connected = 1;
  82. while (connected < 100)
  83. {
  84. printf("waiting...n");
  85. newsockfd = accept(sockfd, (struct sockaddr *) &cli_addr, &clilen);
  86.  
  87. //... more processing
  88. }
Add Comment
Please, Sign In to add comment