//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
|