Advertisement
pastinglikehell

sendrecv.c

Jul 25th, 2016
56
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.84 KB | None | 0 0
  1. /* UDP sender */
  2. #include <stdio.h>
  3. #include <stdlib.h>
  4. #include <string.h>
  5. #include <unistd.h>
  6. #include <sys/types.h>
  7. #include <sys/socket.h>
  8. #include <netinet/in.h>
  9. #include <arpa/inet.h>
  10.  
  11. #define RECV_PORT 7550
  12. #define RECV_IP "172.16.38.139"
  13.  
  14. int main(){
  15.  
  16. int pid;
  17. pid = fork();
  18.  
  19. if(pid == 0){
  20.  
  21. printf("figlio\n");
  22. int sockfd;
  23. struct sockaddr_in recv_addr;
  24. extern int errno;
  25. int i,n;
  26. char line[100];
  27.  
  28. if((sockfd=socket(AF_INET,SOCK_DGRAM,0)) <0){
  29. printf("\nErrore nell'apertura del socket");
  30. return -1;
  31. }
  32.  
  33. memset( &recv_addr,0, sizeof(recv_addr));
  34. recv_addr.sin_family = AF_INET;
  35. recv_addr.sin_addr.s_addr = inet_addr(RECV_IP);
  36. recv_addr.sin_port = htons(RECV_PORT);
  37.  
  38. printf("\nInserisci un numero ");
  39. scanf("%d",&n);
  40.  
  41. for(i=0;i<10;++i){
  42. sprintf(line,"\n %d",i+n);
  43. printf("%s",line);
  44. sendto(sockfd, line, strlen(line)+1, 0, (struct sockaddr *)&recv_addr, sizeof(recv_addr));
  45. }
  46. }
  47. else{
  48. printf("padre\n");
  49. int sockfd;
  50. struct sockaddr_in recv_addr, send_addr;
  51. //extern int errno;
  52. socklen_t l = sizeof(send_addr);
  53. char line[100];
  54.  
  55. if((sockfd=socket(AF_INET,SOCK_DGRAM,0)) <0)
  56. { printf("\nErrore nell'apertura del socket");
  57. return -1;
  58. }
  59. memset((char *) &recv_addr,0,sizeof(recv_addr));
  60. recv_addr.sin_family = AF_INET;
  61. recv_addr.sin_addr.s_addr = htonl(INADDR_ANY);
  62. recv_addr.sin_port = htons(RECV_PORT);
  63.  
  64. if(bind(sockfd, (struct sockaddr *) &recv_addr, sizeof(send_addr))<0){
  65. printf("\nErrore nel binding. Errore %d \n",errno);
  66. return -1;
  67. }
  68.  
  69. for(;;){
  70. recvfrom(sockfd, line, 99,0, (struct sockaddr *)&send_addr,&l);
  71. printf("%s",line);
  72. }
  73. }
  74. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement