TFTPC.C
#include<sys/socket.h>
#include<sys/types.h>
#include<string.h>
#include<stdio.h>
#include<netinet/in.h>
#include<arpa/inet.h>
#define SERV_UDP_PORT 2552
#define SERV_HOST_ADDR "10.1.2.199"
#define MAX 5000
#define MAX1 20
main()
{
FILE *fp;
int sockfd,addrlen,a,b,k;
int ascii[100];
char ch1,ch;
char f1[20];
char f2[20];
int q;
char buf3[MAX];
struct sockaddr_in serv_addr,cli_addr;
char buf[MAX];
char bf[MAX];
char buf1[20]="ICAEC";
char se[MAX1]="Service:";
char buf2[20]="ICAEOF";
bzero((char *) &serv_addr,sizeof(serv_addr));
serv_addr.sin_family=AF_INET;
serv_addr.sin_port=htons(SERV_UDP_PORT);
serv_addr.sin_addr.s_addr=inet_addr(SERV_HOST_ADDR);
sockfd=socket(AF_INET,SOCK_DGRAM,0);
bzero((char *) &cli_addr,sizeof(cli_addr));
cli_addr.sin_addr.s_addr=htonl(INADDR_ANY);
cli_addr.sin_port=htons(0);
cli_addr.sin_family=AF_INET;
bind(sockfd,(struct sockaddr *) &cli_addr,sizeof(cli_addr));
addrlen=sizeof(serv_addr);
while(strcmp(buf,"bye")!=0)
{
addrlen=sizeof(serv_addr);
memset(buf3,0,MAX);
memset(buf,0,MAX);
a=0;
printf("Enter string=");
scanf("%s",buf);
a=0;
while(buf[a]!='\0')
{
ascii[a]=toascii(buf[a]);
a++;
}
ascii[a]=16;
a=0;
b=0;
while(ascii[a]!=16)
{
if(ascii[a]==8||ascii[a]==27)
{
if(ascii[a]==27)
{
buf3[b]=buf[a];
b++;
a++;
k=0;
while(buf2[k]!='\0')
{
buf3[b]=buf2[k];
b++;
k++;
}
}
else
{
buf3[b]=buf[a];
b++;
a++;
k=0;
while(buf1[k]!='\0')
{
buf3[b]=buf1[k];
b++;
k++;
}
}
}
else
{
buf3[b]=buf[a];
a++;
b++;
}
}
printf("\nSending string is :%s\n",buf3);
sendto(sockfd,buf3,MAX,0,(struct sockaddr *)&serv_addr,addrlen);
recvfrom(sockfd,buf,MAX,0,(struct sockaddr *)&serv_addr,&addrlen);
printf("\nRecieve Data is1:%s\n",buf);
if(strcmp(buf,"Give_File_Name_FROM:")==0)
{
printf("\nGive_File_To_Read_From_Server_Machine:\n");
//scanf("%s",f1);
scanf("%s",buf);
sendto(sockfd,buf,MAX,0,(struct sockaddr *)&serv_addr,addrlen);
recvfrom(sockfd,buf,MAX,0,(struct sockaddr *)&serv_addr,&addrlen);
printf("\nRecieve Data is1:%s\n",buf);
printf("\nGive_File_To_Save_Local_Machine:\n");
scanf("%s",f1);
fp=fopen(f1,"w");
fwrite(buf,MAX,1,fp);
}
if(strcmp(buf,"Give_File_Name_TO:")==0)
{
printf("\nGive_File_Name_To_Server_Machine:\n");
scanf("%s",buf);
strcpy(f1,buf);
sendto(sockfd,buf,MAX,0,(struct sockaddr *)&serv_addr,addrlen);
recvfrom(sockfd,buf,MAX,0,(struct sockaddr *)&serv_addr,&addrlen);
printf("\nFile To Be Save On Server:\n");
scanf("%s",f2);
printf("\nRecieve Data is1:%s\n",buf);
fp=fopen(f2,"r");
q=0;
while(!feof(fp))
{
ch = fgetc(fp);
buf[q]=ch;
q++;
}
sendto(sockfd,buf,MAX,0,(struct sockaddr *)&serv_addr,addrlen);
}
if(strcmp(buf,":Well_Come_To_TFTP:")==0)
{
sendto(sockfd,se,MAX1,0,(struct sockaddr *)&serv_addr,addrlen);
recvfrom(sockfd,buf,MAX,0,(struct sockaddr *)&serv_addr,&addrlen);
printf("\nRecieve Data is2:%s\n",buf);
}
}
close(sockfd);
}
Copyright © 2011 - All Rights Reserved - Softron.in
Template by Softron Technology