© 2014 Firstsoft Technologies (P) Limited. login
Hi 'Guest'
Home SiteMap Contact Us Disclaimer
enggedu
Quick Links
Easy Studies


C Program To Transfer Files Over RS232:

//RS232 Server Program: #include #include #include #include #include #include #define MAX 5 #define BUF 256 int main(int argc, char **argv) { int sersock, clisock, portno; struct sockaddr_in echoseraddr,echocliaddr; char echobuffer[BUF]; unsigned int clilen, recvmsgsize; FILE *fp=fopen(“recvfile.txt”,”w”); portno=atoi(argv[1]); sersock=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP); memset(&echoseraddr,0,sizeof(&echoseraddr)); echoseraddr.sin_family=AF_INET; echoseraddr.sin_addr.s_addr=htonl(INADDR_ANY); echoseraddr.sin_port=htons(portno); bind(sersock,(struct sockaddr*)&echoseraddr,sizeof(echoseraddr)); printf(“\nServer waiting for client on port %d”, portno); listen(sersock,MAX); clilen=sizeof(echocliaddr); clisock=accept(sersock,(struct sockaddr *)&echocliaddr, &clilen); recvmsgsize=1; while(recvmsgsize>0) { recvmsgsize=recv(clisock,echobuffer,BUF,0); echobuffer[recvmsgsize]=’\0’; fprintfp(fp,”%s”,echobuffer); } printf(“\nFile received and socket closed”); close(clisock); fclose(fp); return 0; } //RS232 Client Program: #include #include #include #include #include #include #include #define BUF 256 int main(int argc, char **argv) { int sock, portno; struct sockaddr_in echoseraddr; char *serIP, *filename, echobuffer[32]; FILE *fp; serIP=argv[1]; filename=argv[2]; portno=atoi(argv[3]); fp=fopen(filename,”r”); sock=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP); memset(&echoseraddr,0,sizeof(&echoseraddr)); echoseraddr.sin_family=AF_INET; echoseraddr.sin_addr.s_addr=inet_addr(serIP); echoseraddr.sin_port=htons(portno); connect(sock,(struct sockaddr *)&echoseraddr, sizeof(echoseraddr)); while(!feof(fp)) { fgets(echobuffer,BUF,fp); send(sock,echobuffer,strlen(echobuffer),0); } printf(“\nThe %s send over RS232”,filename); close(sock); return 0; }

SAMPLE INPUT OUTPUT:

In Server Side:

cc rsser.c
./a.out 8222
Server waiting for client on port 8222
File received and socket closed
cat recvfile.txt
this is rs232 program

In Client Side:

cc rscli.c
./a.out 197.168.2.100 rsinput.txt 8222
The rsinput.txt send over RS232
cat > rsinput.txt
this is rs232 program

 
SLogix Student Projects
bottom