Guest User

Server-udp.c

a guest
Sep 17th, 2013
165
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.61 KB | None | 0 0
  1. #include<sys/types.h>
  2. #include<netinet/in.h>
  3. #include<sys/socket.h>
  4. #include<stdio.h>
  5. #include<string.h>
  6. #include<fcntl.h>
  7. #include<unistd.h>
  8.  
  9. #define MYPORT 9303
  10. #define BUFSIZE 2048
  11.  
  12. int main(int argc, char **argv)
  13. {
  14. struct sockaddr_in myaddr;
  15. struct sockaddr_in remaddr;
  16.  
  17. socklen_t addrlen = sizeof(remaddr);
  18. int sockfd, recvlen, fd, count;
  19. char buf[BUFSIZE];
  20.  
  21. if((sockfd = socket(AF_INET,SOCK_DGRAM,0))<0)
  22. {
  23. perror("cannot create socket");
  24. return 0;
  25. }
  26. printf("created socket: descriptor = %d\n",sockfd);
  27.  
  28. memset((void *)&myaddr, 0, sizeof(myaddr));
  29. myaddr.sin_family = AF_INET;
  30. myaddr.sin_addr.s_addr = htonl(INADDR_ANY);
  31. myaddr.sin_port = htons(MYPORT);
  32.  
  33. if(bind(sockfd, (struct sockaddr *)&myaddr, sizeof(myaddr)) < 0)
  34. {
  35. perror("bind failed");
  36. return 0;
  37. }
  38. printf("bind complete. Port number = %d\n",ntohs(myaddr.sin_port));
  39.  
  40.  
  41. //Code to receive & send the data
  42. printf("waiting on port %d\n",MYPORT);
  43. recvlen = recvfrom(sockfd, buf, BUFSIZE, 0, (struct sockaddr *)&remaddr, &addrlen);
  44. printf("received %d bytes\n", recvlen);
  45. if(recvlen > 0)
  46. {
  47. buf[recvlen]=0;
  48. printf("received message: \"%s\"\n",buf);
  49. }
  50. if((fd=open(buf,O_RDONLY,0))<0){
  51. perror("File not found");
  52. exit(0);
  53. }
  54. while((count=read(fd,buf,BUFSIZE))>0)
  55. printf("%d",count);
  56.  
  57. sendto(sockfd, count, count, 0, (struct sockaddr *)&remaddr, &addrlen);
  58.  
  59.  
  60. }
Advertisement
Add Comment
Please, Sign In to add comment