Advertisement
Guest User

Untitled

a guest
Feb 20th, 2020
126
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.67 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <sys/socket.h>
  3. #include <netinet/in.h>
  4. #include <unistd.h>
  5. #include <fcntl.h>
  6. #include <arpa/inet.h>
  7. #include <string.h>
  8. #include <dirent.h>
  9. #include <sys/types.h>
  10.  
  11. #include <pthread.h>
  12.  
  13.  
  14.  
  15. void directoryContent(char* content){
  16. struct dirent *de;
  17.  
  18. DIR *dr = opendir(".");
  19.  
  20. if(dr == NULL){
  21. printf("Could not open current directory");
  22.  
  23. }
  24.  
  25. while((de = readdir(dr))!=NULL){
  26. strcat(content, de->d_name);
  27. stract(content,"\n");
  28. printf("%s\n", content);
  29. }
  30.  
  31. closedir(dr);
  32.  
  33. }
  34.  
  35. void *connectionHandler(void *args){
  36. char message[128] = "Acesta eset un mesaj";
  37. int connectionSocket = *((int*)args);
  38. printf("thread started\n");
  39. send(connectionSocket, message, strlen(message), 0);
  40. close(connectionSocket);
  41. }
  42.  
  43.  
  44. int main(){
  45. //def socket
  46. //bind socket
  47. //listen on socket
  48. struct sockaddr_in serverAddress;
  49. struct sockaddr_storage clientAddress;
  50. socklen_t addr_len;
  51. pthread_t tHandle;
  52. char message[2048] = {0};
  53.  
  54.  
  55. int serverSocket = socket(PF_INET, SOCK_STREAM, 0);
  56.  
  57. serverAddress.sin_family = AF_INET;
  58. serverAddress.sin_port = htons(12345); //host to networl
  59. serverAddress.sin_addr.s_addr = inet_addr("127.0.0.1");
  60.  
  61. bind(serverSocket, &serverAddress, sizeof(serverAddress));
  62.  
  63. directoryContent(message);
  64.  
  65. printf("Before listen\n");
  66.  
  67. listen(serverSocket, 100);
  68.  
  69. printf("After listen\n");
  70.  
  71.  
  72.  
  73. //send(clientSocket, message, strlen(message), 0);
  74.  
  75. while(1) {
  76. //wait for client connection
  77. int clientSocket = accept(serverSocket, &clientAddress, &addr_len);
  78.  
  79. pthread_create(&tHandle, NULL, connectionHandler, &clientSocket);
  80.  
  81.  
  82. usleep(50000);
  83. }
  84.  
  85.  
  86. return 0;
  87. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement