Advertisement
xathrya

quick skit

May 31st, 2016
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.08 KB | None | 0 0
  1. struct arg_struct {
  2. char name[256];
  3. int connfd;
  4. }
  5. void *file_receiver(void *);
  6.  
  7. int main() {
  8.  
  9. // ....
  10.  
  11. struct sockaddr_in client;
  12. int c;
  13. pthread_t thread_id;
  14. struct arg_struct argumen;
  15.  
  16. while(1)
  17. {
  18. connfd = accept(listenfd, (struct sockaddr*)&client, (socklen_t*)&c);
  19. bytesReceived = read(connfd, recvBuff, 256);
  20.  
  21. memset(&argumen, 0, sizeof(argumen));
  22. strncpy(argumen.name, recvBuff, 255);
  23. argumen.connfd = connfd
  24.  
  25. if (pthread_create(&thread_id, NULL, file_receiver, (void*) &argumen) < 0)
  26. {
  27. perror("could not create thread");
  28. return 1;
  29. }
  30. }
  31.  
  32. // ....
  33. }
  34.  
  35. void *file_receiver(void * arg)
  36. {
  37. char buffer[256];
  38. int n;
  39. arg_struct argumen = *((arg_struct*)arg);
  40. FILE *fp = fopen(argumen.name, "rw");
  41. if (NULL == fp)
  42. {
  43. printf("Error opening file");
  44. return;
  45. }
  46.  
  47. while ((n = read(argumen.connfd, buffer, sizeof(buffer)-1)) > 0)
  48. {
  49. fwrite(buffer, 1, buffer, fp);
  50. }
  51.  
  52. if (n < 0)
  53. printf("\nRead error\n");
  54.  
  55. fclose(fp);
  56. close(argumen.connfd);
  57. sleep(1);
  58. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement