Guest User

Untitled

a guest
Nov 27th, 2011
1,118
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.73 KB | None | 0 0
  1. ///FTP CLIENT
  2.  
  3. #include<stdio.h>
  4. #include<stdlib.h>
  5. #include<string.h>
  6.  
  7. #include<sys/types.h>
  8. #include<sys/socket.h>
  9. #include<arpa/inet.h>
  10.  
  11. #include<sys/stat.h>
  12. #include<sys/sendfile.h>
  13. #include<fcntl.h>
  14.  
  15. int main()
  16. {
  17. int k,choice;
  18. int len1,l;
  19. int counter;
  20. int sock_desc,filehandle;
  21. struct sockaddr_in client;
  22. char buf[100],length[100],fil[100];
  23. char temp1[100];
  24. memset(&client,0,sizeof(client));
  25. sock_desc=socket(AF_INET,SOCK_STREAM,0);
  26. if(sock_desc==-1)
  27. {
  28. puts("Unable to create socket");
  29. exit(1);
  30. }
  31.  
  32. client.sin_family=AF_INET;
  33. client.sin_addr.s_addr=INADDR_ANY;
  34. client.sin_port=8045;
  35.  
  36. k=connect(sock_desc,(struct sockaddr *)&client,sizeof(client));
  37. if(k==-1)
  38. {
  39. puts("Error in connect");
  40. exit(1);
  41. }
  42. while(1)
  43. {
  44. puts("1.List");
  45. puts("2.Load");
  46. puts("3.Store");
  47. puts("4.EXIT");
  48. puts("Enter choice:");
  49. scanf("%d",&choice);
  50. switch(choice)
  51. {
  52. case 1:
  53. filehandle=open("list2.txt",O_RDWR|O_CREAT,0700);
  54. strcpy(buf,"LIST");
  55. k=send(sock_desc,buf,100,0);
  56. if(k==-1)
  57. {
  58. puts("Unable to send");
  59. exit(1);
  60. }
  61. k=recv(sock_desc,length,100,0);
  62. if(k==-1)
  63. {
  64. puts("Error in receive");
  65. exit(1);
  66. }
  67. len1=atoi(length);
  68. printf("length is %d\n",len1);
  69. counter=0;
  70. while(counter<len1)
  71. {
  72. l=read(sock_desc,fil,100);
  73. l=write(filehandle,fil,100);
  74. counter+=l;
  75. }
  76. system("cat list2.txt");
  77. close(filehandle);
  78. break;
  79. case 2:
  80.  
  81. filehandle=open("list4.txt",O_RDWR|O_CREAT,0700);
  82. strcpy(buf,"LOAD ");
  83. puts("Enter filename:");
  84. scanf("%s",temp1);
  85. strcat(buf,temp1);
  86. k=send(sock_desc,buf,100,0);
  87. if(k==-1)
  88. {
  89. puts("Error in sending");
  90. exit(1);
  91. }
  92. k=recv(sock_desc,length,100,0);
  93. if(k==-1)
  94. {
  95. puts("Error in receiving file");
  96. exit(1);
  97. }
  98. len1=atoi(length);
  99. printf("Length received:%d\n",len1);
  100. counter=0;
  101. strcpy(fil,"");
  102. while(counter<len1)
  103. {
  104. l=read(sock_desc,fil,100);
  105. l=write(filehandle,fil,100);
  106. counter+=l;
  107. }
  108. system("cat list4.txt");
  109. break;
  110. case 3:
  111. case 4:
  112. puts("EXITing..");
  113. break;
  114. }
  115. }
  116. close(sock_desc);
  117. exit(1);
  118. }
  119.  
  120.  
  121. ////FTP SERVER WITH TCP
  122.  
  123. #include<stdio.h>
  124. #include<stdlib.h>
  125. #include<string.h>
  126.  
  127. #include<sys/types.h>
  128. #include<sys/socket.h>
  129. #include<arpa/inet.h>
  130.  
  131. #include<sys/stat.h>
  132. #include<sys/sendfile.h>
  133. #include<fcntl.h>
  134.  
  135.  
  136. int main()
  137. {
  138. int sock_desc,sock_desc2;
  139. socklen_t len;
  140. struct stat obj;
  141. char length[10];
  142. int filehandle;
  143. char choice[100];
  144. int k,i;
  145. char buf[100];
  146. char target[100];
  147. struct sockaddr_in client,server;
  148. memset(&client,0,sizeof(client));
  149. memset(&server,0,sizeof(server));
  150. sock_desc=socket(AF_INET,SOCK_STREAM,0);
  151. if(sock_desc==-1)
  152. {
  153. puts("Error in socket 1");
  154. exit(1);
  155. }
  156. server.sin_family=AF_INET;
  157. server.sin_addr.s_addr=INADDR_ANY;
  158. server.sin_port=8045;
  159.  
  160. k=bind(sock_desc,(struct sockaddr *)&server,sizeof(server));
  161. if(k==-1)
  162. {
  163. puts("Error in binding");
  164. exit(1);
  165. }
  166. k=listen(sock_desc,5);
  167. if(k==-1)
  168. {
  169. puts("Error in listening");
  170. exit(1);
  171. }
  172. len=sizeof(client);
  173. sock_desc2=accept(sock_desc,(struct sockaddr *)&client,&len);
  174. if(sock_desc2==-1)
  175. {
  176. puts("Error in socket2");
  177. exit(1);
  178. }
  179. while(1)
  180. {
  181. k=recv(sock_desc2,buf,100,0);
  182. if(k==-1)
  183. {
  184. puts("Error in receive");
  185. exit(1);
  186. }
  187. for(i=0;i<4;i++)
  188. {
  189. choice[i]=buf[i];
  190. }
  191. choice[i]='\0';
  192. puts("");
  193. puts(choice);
  194. puts("");
  195. if(strcmp(choice,"LIST")==0)
  196. {
  197. system("ls -al>list.txt");
  198. filehandle=open("list.txt",O_RDONLY);//
  199. stat("list.txt",&obj);//
  200. sprintf(length,"%d",(int)obj.st_size);
  201. puts("sending size of file");
  202. k=send(sock_desc2,length,strlen(length),0);
  203. if(k==-1)
  204. {
  205. printf("send failed");
  206. exit(1);
  207. }
  208. puts("send entire file");
  209. k=sendfile(sock_desc2,filehandle,NULL,obj.st_size);
  210. if(k==-1)
  211. {
  212. printf("file sendingfailed");
  213. exit(1);
  214. }
  215.  
  216. }
  217. else if(strcmp(choice,"LOAD")==0)
  218. {
  219. puts("inside load");
  220. strcpy(target,buf+5);
  221. printf("target file is*%s*\n",target);
  222. memset(&obj,0,sizeof(obj));
  223. stat(target,&obj);
  224. filehandle=open(target,O_RDONLY);
  225. if(filehandle==-1)
  226. {
  227. puts("Error in opening file for read");
  228. exit(1);
  229. }
  230. sprintf(length,"%d",(int)obj.st_size);
  231. k=send(sock_desc2,length,strlen(length),0);
  232. if(k==-1)
  233. {
  234. puts("Error in sending");
  235. exit(1);
  236. }
  237. k=sendfile(sock_desc2,filehandle,NULL,obj.st_size);
  238. if(k==-1)
  239. {
  240. puts("Error in sending file");
  241. exit(1);
  242. }
  243. }
  244.  
  245. }
  246.  
  247. }
  248.  
  249.  
  250.  
  251.  
  252.  
Advertisement
Add Comment
Please, Sign In to add comment