Advertisement
Guest User

Untitled

a guest
Apr 3rd, 2017
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.28 KB | None | 0 0
  1. l#include <stdio.h>
  2. #include <sys/types.h>
  3. #include <sys/socket.h>
  4. #include <netinet/in.h>
  5. #include <string.h>
  6. #include <stdlib.h>
  7. #include <unistd.h>
  8. #include <netdb.h>
  9.  
  10. int authentication(int socket);
  11. int main(int argc, char *argv[]) {
  12.  
  13. struct sockaddr_in server;
  14. struct hostent *host;
  15. char uname[100];
  16. char buffer[5000];
  17. int portno,socky,n;
  18. int length = 0,ch,i,p;
  19. char cha;
  20. int *new_sock;
  21. int orig_length = 0;
  22.  
  23. if(argc < 3) {
  24. perror("insufficient inputs"); //checking the inputs
  25. exit(1);
  26. }
  27.  
  28. if((socky = socket(AF_INET,SOCK_STREAM,0)) < 0) {
  29. perror("nerror in socket creation"); //socket creation
  30. exit(1);
  31. }
  32.  
  33. printf("nsocket successfully created");
  34.  
  35. server.sin_family = AF_INET;
  36. portno = atoi(argv[2]);
  37. server.sin_port = htons(portno);
  38. host = gethostbyname(argv[1]);
  39. if(host == NULL) {
  40. perror("nerror in getting host address");
  41. exit(1);
  42. }
  43.  
  44. memcpy (&server.sin_addr.s_addr, host->h_addr,host->h_length);
  45.  
  46. if((connect(socky,&server,sizeof(server)))<0) {
  47. perror("nerror in connection");
  48. exit(1);
  49. }
  50. while(1) {
  51. printf("n select an option");
  52. printf("n1->student loginn2->Instructor loginn3->Admin loginn");
  53. printf("n came near scanf");
  54. scanf("%d",&ch);
  55. //printf("nselected value: %c",ch)
  56.  
  57. if(ch == 1) {
  58. p = authentication(socky);
  59. } else {
  60. printf("n invalid option");
  61. }
  62. }
  63. return 0;
  64. }
  65.  
  66.  
  67. int authentication(int socky) {
  68. char buffer[5000];
  69. char cha;
  70. char uname[100];
  71. int n,i;
  72. bzero(buffer,5000);
  73. buffer[0] = '1';
  74. buffer[1] = '';
  75. printf("n%s",buffer);
  76. if(n = (write(socky,buffer,strlen(buffer))) < 0) {
  77. perror("nerror in writing the message");
  78. exit(1);
  79. }
  80. sleep(10);
  81. bzero(buffer,5000);
  82. printf("nenter the username:n");
  83. scanf("%s",&uname);
  84. strcpy(buffer,uname);
  85. printf("%s",buffer);
  86. fgets(buffer,5000,stdin);
  87. if((n = write(socky,buffer,strlen(buffer))) < 0) {
  88. perror("nerror in writing the message");
  89. exit(1);
  90. }
  91.  
  92. bzero(buffer,5000);
  93. printf("nenter the password:n");
  94. for(i =0; cha!=10; i++) {
  95. cha = fgetc(stdin);
  96. //printf("*");
  97. buffer[i] = cha;
  98. }
  99. buffer[i] = '';
  100. printf("n entered password is :%s",buffer);
  101. if((n = write(socky,buffer,strlen(buffer))) < 0) {
  102. perror("nerror in writing the message");
  103. exit(1);
  104. }
  105. return 0;
  106. }
  107.  
  108. #include <stdio.h>
  109. #include <string.h> //strlen
  110. #include <stdlib.h> //strlen
  111. #include <sys/socket.h>
  112. #include <arpa/inet.h> //inet_addr
  113. #include <unistd.h> //write
  114. #include <pthread.h> //for threading , link with lpthread
  115. #include <fcntl.h>
  116. #include <time.h>
  117. //the thread function
  118. void *connection_handler(void *);
  119.  
  120. int main(int argc , char *argv[])
  121. {
  122. int socket_desc , client_sock , c , *new_sock;
  123. struct sockaddr_in server , client;
  124. int n;
  125. char buffer[5000];
  126.  
  127. //Create socket
  128. socket_desc = socket(AF_INET , SOCK_STREAM , 0);
  129. if (socket_desc == -1)
  130. {
  131. printf("Could not create socket");
  132. }
  133. puts("Socket created");
  134.  
  135. //Prepare the sockaddr_in structure
  136. server.sin_family = AF_INET;
  137. server.sin_addr.s_addr = INADDR_ANY;
  138. server.sin_port = htons( atoi(argv[1]));
  139.  
  140. //Bind
  141. if( bind(socket_desc,(struct sockaddr *)&server , sizeof(server)) < 0)
  142. {
  143. //print the error message
  144. perror("bind failed. Error");
  145. return 1;
  146. }
  147. puts("bind done");
  148.  
  149. //Listen
  150. listen(socket_desc , 3);
  151.  
  152. //Accept and incoming connection
  153. puts("Waiting for incoming connections...");
  154. c = sizeof(struct sockaddr_in);
  155.  
  156. c=sizeof(struct sockaddr_in);
  157. while(client_sock=accept(socket_desc,(struct sockaddr*)&client,(socklen_t*)&c))
  158. {
  159. puts("Connection accepted");
  160.  
  161. // if( (n = recv(client_sock,buffer,5000,0)) < 0)
  162. // {
  163. // perror("nreading from socket failed");
  164. // exit(1);
  165. //}
  166. //printf("nread message:%s",buffer);
  167.  
  168. pthread_t sniffer_thread;
  169. new_sock = malloc(1);
  170. *new_sock = client_sock;
  171.  
  172.  
  173. if( pthread_create( &sniffer_thread , NULL , connection_handler , (void*) new_sock) < 0)
  174. {
  175. perror("could not create thread");
  176. return 1;
  177. }
  178.  
  179. puts("Handler assigned");
  180. }
  181.  
  182. if (client_sock < 0)
  183. {
  184. perror("accept failed");
  185. return 1;
  186. }
  187. return 0;
  188. }
  189. /*
  190. This will handle connection for each client
  191. */
  192. void *connection_handler(void *socket_desc)
  193. {
  194. //Get the socket descriptor
  195. int sock = *(int*)socket_desc;
  196. int n;
  197. char buffer[5000];
  198. printf("n came inside connection handler");
  199.  
  200. while(1)
  201. {
  202. bzero(buffer,5000);
  203. if( (n = recv(sock,buffer,5000,0)) < 0)
  204. {
  205. perror("nreading from socket failed");
  206. exit(1);
  207. }
  208. printf("nread message:%s",buffer);
  209. if(n < 0)
  210. {
  211. perror("n Reading failed");
  212. }
  213. if(n==0)
  214. {
  215. puts("nClient Disconnected");
  216. break;
  217. }
  218.  
  219. sleep(5);
  220. }
  221.  
  222.  
  223. close(sock);
  224. return 0;
  225. }
  226.  
  227.  
  228.  
  229.  
  230.  
  231.  
  232. output on server side is as follows:
  233. came inside connection handler
  234. read message:1
  235. read message:
  236.  
  237. read message:mypassword
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement