Substring Search & Replacement - UDP - Client Server Program - Network-DBMS Lab - C Program

Program:

// Server : sbs.c

#include<stdio.h>
#include<string.h>
#include<sys/stat.h>
#include<sys/types.h>
#include<sys/socket.h>
#include<netinet/in.h>
#include<arpa/inet.h>
#include<stdlib.h>


main ()
{
    struct sockaddr_in client,server;
    int s,sock,found,sz,ack=0,length=0,i,j,bi1=0;
    char buffer[100],substring[20],newstring[20];
    FILE *ptr,*op;
   
    s=socket(AF_INET,SOCK_DGRAM,0);
    server.sin_family=AF_INET;
    server.sin_port=2000;
    server.sin_addr.s_addr=inet_addr("127.0.0.1");
    sz=sizeof(client);
    bind(s,(struct sockaddr *)&server,sizeof(server));
   
   
   
    recvfrom(s,substring,sizeof(substring),0,(struct sockaddr *)&client,&sz);
    printf("\nSubstring received: %s.",substring);
    recvfrom(s,newstring,sizeof(newstring),0,(struct sockaddr *)&client,&sz);
    printf("\nNewstring received: %s",newstring);
   ptr=fopen("testrecord.txt","r");
    op=fopen("result.txt","w");
    while((buffer[bi1]=getc(ptr))!=EOF)
        {
                   found=0;
                   bi1++;
                   if(buffer[bi1-1]==substring[0])
                   {
                       length=1;
                       for(i=1;i<strlen(substring);i++)
                    {
                        if((buffer[bi1]=getc(ptr))==substring[i])
                        {                           
                            length++;
                            bi1++;
                        }
                        else
                {
                    bi1++;
                    break;
                }
                    }
                    if(length==strlen(substring))
                    {
                        found=1;
                        ack=1;
                        printf("\nSubstring found.");
            }
        }
        if(!found)
        {
            fprintf(op,"%s",buffer);
           
        }
        else
        {
            fprintf(op,"%s",newstring);printf("\nString replaced.");
        }
        bi1=0;bzero(buffer,100);
       
    }
   
    sendto(s,&ack,sizeof(int),0,(struct sockaddr *)&client,sz);

  if(ack)
  {
  remove("testrecord.txt");
  rename("result.txt","testrecord.txt");
         printf("\nSaved Successfully.\n");
 }
 remove("result.txt");

 fclose(ptr);
 fclose(op);
 close(s);
}


// Client: sbc.c

#include<stdio.h>
#include<string.h>
#include<sys/stat.h>
#include<sys/types.h>
#include<sys/socket.h>
#include<netinet/in.h>
#include<arpa/inet.h>
#include<stdlib.h>

main()
{
    struct sockaddr_in client;
    int s,found=0,choice=0,ack=0;;
    char buffer[20],newstring[20],substring[20];
   
   
    s=socket(AF_INET,SOCK_DGRAM,0);
    client.sin_family=AF_INET;
    client.sin_port=2000;
    client.sin_addr.s_addr=inet_addr("127.0.0.1");
   
   
    printf("Enter the substring: ");
    scanf("%s",substring);
    printf("\nNewstring: ");
       scanf("%s",newstring);
    sendto(s,substring,sizeof(substring),0,(struct sockaddr *)&client,sizeof(client));
   sendto(s,newstring,sizeof(newstring),0,(struct sockaddr *)&client,sizeof(client));

 recvfrom(s,&found,sizeof(int),0,NULL,NULL);
    if(found)
    {
        printf("\nSubstring found & replaced.\n");
    }
    else
    {
            printf("\nNot found.\n");

    }
    close(s);

}




// testrecord.txt

i like www.2k8618.blogspot.com.

Output:

Terminal 1: (Server)
nn@linuxmint ~ $ gcc sbs.c -o server
nn@linuxmint ~ $ ./server

Substring received: 2k8618.blogspot.com.
Newstring received: 2k8cse.cu.cc
Substring found.
String replaced.
Saved Successfully.
nn@linuxmint ~ $

Terminal 2: (Client)
nn@linuxmint ~ $ gcc sbc.c -o client
nn@linuxmint ~ $ ./client
Enter the substring: 2k8618.blogspot.com

Newstring: 2k8cse.cu.cc

Substring found & replaced.
nn@linuxmint ~ $

// testrecord.txt

i like www.2k8cse.cu.cc.

0 comments:

Post a Comment

Related Posts Plugin for WordPress, Blogger...