Advertisement
Guest User

Untitled

a guest
Nov 22nd, 2019
148
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.00 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <unistd.h>
  4. #include <string.h>
  5. #include <sys/types.h>
  6. #include <sys/socket.h>
  7. #include <arpa/inet.h>
  8. #include <netinet/in.h>
  9.  
  10. struct packet {
  11. char oper[5];
  12. int int1;
  13. int int2;
  14. };
  15.  
  16. struct resultpacket {
  17. int success;
  18. int result;
  19. };
  20.  
  21. // Driver code
  22. int main() {
  23. int sockfd;
  24. char buffer[10];
  25. char *hello = "Hello from client";
  26. struct sockaddr_in servaddr;
  27.  
  28. // Creating socket file descriptor
  29. if ( (sockfd = socket(AF_INET, SOCK_DGRAM, 0)) < 0 ) {
  30. perror("socket creation failed");
  31. exit(EXIT_FAILURE);
  32. }
  33. printf("Socket successfully created..\n");
  34.  
  35. memset(&servaddr, 0, sizeof(servaddr));
  36. // Filling server information
  37. servaddr.sin_family = AF_INET;
  38. servaddr.sin_port = htons(8080);
  39. servaddr.sin_addr.s_addr = INADDR_ANY;
  40.  
  41. //variable declaration for packet to be sent
  42. int n, len;
  43. char str[5];
  44. char str2[5];
  45. int num1, num2;
  46. printf("Enter the string : ");
  47. scanf("%d %s %d", &num1, &str, &num2);
  48.  
  49. //check operator inputted
  50. if (strcmp(str,"+") == 0) {
  51. strcpy(str2, "add");
  52. } else if (strcmp(str,"-") == 0) {
  53. strcpy(str2, "sub");
  54. } else if (strcmp(str,"*") == 0) {
  55. strcpy(str2, "mul");
  56. } else if (strcmp(str,"/") == 0) {
  57. strcpy(str2, "div");
  58. }
  59.  
  60. //create packet
  61. struct packet pkt;
  62. strcpy(pkt.oper, str2);
  63. pkt.int1 = num1;
  64. pkt.int2 = num2;
  65.  
  66. //send packet to server
  67. sendto(sockfd, &pkt, sizeof(pkt), MSG_CONFIRM, (const struct sockaddr *) &servaddr, sizeof(servaddr));
  68. printf("Sent to server: %s %d %d\n", pkt.oper, pkt.int1, pkt.int2);
  69.  
  70. //receive response packet from server
  71. struct resultpacket respkt;
  72. n = recvfrom(sockfd, &respkt, sizeof(respkt), MSG_WAITALL, (struct sockaddr *) &servaddr, &len);
  73. //buffer[n] = '\0';
  74. printf("Received from server - success: %d / result: %d\n",respkt.success, respkt.result);
  75.  
  76. //close socket
  77. close(sockfd);
  78. return 0;
  79. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement