Advertisement
Guest User

meghana

a guest
Mar 3rd, 2015
224
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.30 KB | None | 0 0
  1. void peer(int port)
  2. {
  3. int selfSocket;
  4. struct sockaddr_in serverAddress;
  5. char buffer[1024];
  6. bzero(buffer, 1024);
  7. selfSocket = socket(AF_INET, SOCK_STREAM,0);
  8.  
  9. if(selfSocket < 0)
  10. {
  11. printf("Error while opening Socket\n");
  12. //return 0;
  13. }
  14. else
  15. {
  16. printf("Client socket created\n");
  17. }
  18.  
  19. struct hostent *server;
  20. server = gethostbyname("127.0.0.1");
  21. if (server == NULL)
  22. {
  23. fprintf(stderr,"ERROR, no such host\n");
  24. exit(0);
  25. }
  26.  
  27. serverAddress.sin_family = AF_INET;
  28. serverAddress.sin_port = htons(port);
  29. serverAddress.sin_addr = *((struct in_addr *)server->h_addr);;
  30. bzero(&(serverAddress.sin_zero),8);
  31.  
  32. while(connect (selfSocket, (struct sockaddr *)&serverAddress,sizeof(serverAddress))<0)
  33. sleep(1);
  34.  
  35. int flag = 0;
  36. while(1)
  37. {
  38. bzero(buffer, 1024);
  39. if (flag == 0)
  40. printf("Enter message: ");
  41. //fgets(buffer, sizeof(buffer), stdin);
  42. gets(buffer);
  43. printf("\n");
  44. /*if(strcmp(buffer,"\n") == 0)
  45. printf("ya1\n");*/
  46. if(strcmp(buffer,"") == 0)
  47. {
  48. flag = 1;
  49. continue;
  50. }
  51. else
  52. flag = 0;
  53. if(strcmp(buffer, "q") == 0)
  54. {
  55. if(send(selfSocket, buffer, 1024, 0) < 0)
  56. {
  57. fprintf(stderr,"Error while writing to socket\n");
  58. exit(0);
  59. }
  60. kill(pid, SIGTERM);
  61. break;
  62. //close(selfSocket);
  63. //return ;
  64. }
  65. if(strncmp(buffer, "IndexGet", 8) == 0)
  66. {
  67. ;
  68. clientIndexGet(buffer, &selfSocket);
  69. }
  70. else if(strncmp(buffer, "FileHash", 8) == 0)
  71. {
  72. ;
  73. //clientFileHash(buffer, &selfSocket);
  74. }
  75. else if(strncmp(buffer, "FileDownload", 12) == 0)
  76. {
  77. ;
  78. //clientFileDownload(buffer, &selfSocket);
  79. }
  80. else if(strncmp(buffer, "FileUpload", 10) == 0)
  81. {
  82. ;
  83. //clientFileUpload(buffer, &selfSocket);
  84. }
  85. else
  86. {
  87. if(send(selfSocket, buffer, 1024, 0) < 0)
  88. {
  89. fprintf(stderr,"Error while writing to socket\n");
  90. //exit(0);
  91. }
  92. }
  93. }
  94. close(selfSocket);
  95. exit(0);
  96. //return ;
  97.  
  98. }
  99.  
  100. void host(int port)
  101. {
  102. int selfSocket, peerSocket;
  103. char buffer[1024];
  104. socklen_t clientAddressLength;
  105. struct sockaddr_in clientAddress, serverAddress;
  106.  
  107. //bzero((char *) &clientAddress,sizeof(clientAddress));
  108. char requests[500][200];
  109. int n;
  110. int r = 0;
  111.  
  112. selfSocket = socket(AF_INET, SOCK_STREAM, 0);
  113.  
  114. if(selfSocket < 0)
  115. {
  116. fprintf(stderr,"Error while opening Socket\n");
  117. //return 0;
  118. }
  119. else
  120. {
  121. printf("Server socket created\n");
  122. }
  123.  
  124. bzero((char *) &serverAddress,sizeof(serverAddress));
  125. serverAddress.sin_family = AF_INET;
  126. serverAddress.sin_port = htons(port);
  127. serverAddress.sin_addr.s_addr = htonl(INADDR_ANY);
  128. //bzero(&(serverAddress.sin_zero),8); //
  129.  
  130. if(bind(selfSocket, (struct sockaddr *)&serverAddress, sizeof(serverAddress))<0)
  131. {
  132. fprintf(stderr,"Error while Binding\n");
  133. exit(0);
  134. }
  135. else
  136. {
  137. printf("Server Socket successfully binded\n");
  138. }
  139.  
  140. if(listen(selfSocket,10)<0)
  141. {
  142. fprintf(stderr,"Error while listening\n");
  143. exit(0);
  144. }
  145.  
  146. printf("Waiting for client\n");
  147. fflush(stdout);
  148.  
  149. clientAddressLength = sizeof(clientAddress);
  150. peerSocket = accept(selfSocket, (struct sockaddr *) &clientAddress,&clientAddressLength);
  151.  
  152. if (peerSocket < 0)
  153. {
  154. fprintf(stderr,"Error while accepting connection\n");
  155. exit(0);
  156. }
  157. else
  158. {
  159. printf("Connection accepted\n");
  160. }
  161.  
  162. while(1)
  163. {
  164. bzero(buffer,1024);
  165. n = read(peerSocket,buffer,1024);
  166. if (n < 0)
  167. {
  168. fprintf(stderr,"Error reading from Socket\n");
  169. exit(0);
  170. }
  171. buffer[n] = '\0';
  172. strcpy(requests[r],buffer);
  173. //r++;
  174. if(strcmp(buffer, "q") == 0)
  175. {
  176.  
  177. printf("\nTermination by peer\n");
  178. kill(pid, SIGTERM);
  179. break ;
  180. }
  181. if(strncmp(buffer, "IndexGet", 8) == 0)
  182. {
  183. ;
  184. serverIndexGet(buffer, &peerSocket);
  185. }
  186. else if(strncmp(buffer, "FileHash", 8) == 0)
  187. {
  188. ;
  189. //serverFileHash(buffer, &peerSocket);
  190. }
  191. else if(strncmp(buffer, "FileDownload", 12) == 0)
  192. {
  193. ;
  194. //serverFileDownload(buffer, &peerSocket);
  195. }
  196. else if(strncmp(buffer, "FileUpload", 10) == 0)
  197. {
  198. ;
  199. //serverFileUpload(buffer, &peerSocket);
  200. }
  201. else
  202. {
  203. printf("\nMessage from peer : %s\n", buffer);
  204. printf("Enter Message: ");
  205. r++;
  206. }
  207.  
  208. fflush(stdout);
  209. while(waitpid(WAIT_ANY, NULL, WNOHANG) > 0);
  210. }
  211.  
  212. close(peerSocket);
  213. close(selfSocket);
  214.  
  215. exit(1);
  216. return ;
  217.  
  218.  
  219. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement