Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- uDP ECHO:
- STEP 1: Start
- STEP 2: Declare the variables for the socket
- STEP 3: Specify the family, protocol, IP address and port number
- STEP 4: Create a socket using socket() function
- STEP 5: Bind the IP address and Port number
- STEP 6: Listen and accept the client’s request for the connection
- STEP 7: Read and Display the client’s message
- STEP 8: Stop
- CLIENT:
- STEP 1: Start
- STEP 2: Declare the variables for the socket
- STEP 3: Specify the family, protocol, IP address and port number
- STEP 4: Create a socket using socket() function
- STEP 5: Call the connect() function
- STEP 6: Read the input message
- STEP 7: Send the input message to the server
- STEP 8: Display the server’s echo
- STEP 9: Close the socket
- STEP 10: Stop
- SOURCE CODE:
- SERVER:
- #include<sys/types.h>
- #include<sys/socket.h>
- #include<netinet/in.h>
- #include<unistd.h>
- #include<netdb.h>
- #include<stdio.h>
- #include<string.h>
- #include<arpa/inet.h>
- #define MAXLINE 1024
- int main(int argc,char **argv)
- {
- int sockfd;
- int n;
- socklen_t len;
- char msg[1024];
- struct sockaddr_in servaddr,cliaddr;
- sockfd=socket(AF_INET,SOCK_DGRAM,0);
- bzero(&servaddr,sizeof(servaddr));
- servaddr.sin_family=AF_INET;
- servaddr.sin_addr.s_addr=INADDR_ANY;
- servaddr.sin_port=htons(5035);
- printf("\n\n Binded");
- bind(sockfd,(struct sockaddr*)&servaddr,sizeof(servaddr));
- printf("\n\n Listening...");
- for(;;)
- {
- printf("\n ");
- len=sizeof(cliaddr);
- n=recvfrom(sockfd,msg,MAXLINE,0,(struct sockaddr*)&cliaddr,&len);
- printf("\n Client's Message : %s\n",msg);
- if(n<6)
- perror("send error");
- sendto(sockfd,msg,n,0,(struct sockaddr*)&cliaddr,len);
- }
- return 0;
- }
- CLIENT:
- #include<sys/types.h>
- #include<sys/socket.h>
- #include<netinet/in.h>
- #include<string.h>
- #include<arpa/inet.h>
- #include<string.h>
- #include<arpa/inet.h>
- #include<stdio.h>
- #define MAXLINE 1024
- int main(int argc,char* argv[])
- {
- int sockfd;
- int n;
- socklen_t len;
- char sendline[1024],recvline[1024];
- struct sockaddr_in servaddr;
- strcpy(sendline,"");
- printf("\n Enter the message : ");
- scanf("%s",sendline);
- sockfd=socket(AF_INET,SOCK_DGRAM,0);
- bzero(&servaddr,sizeof(servaddr));
- servaddr.sin_family=AF_INET;
- servaddr.sin_addr.s_addr=inet_addr("127.0.0.1");
- servaddr.sin_port=htons(5035);
- connect(sockfd,(struct sockaddr*)&servaddr,sizeof(servaddr));
- len=sizeof(servaddr);
- sendto(sockfd,sendline,MAXLINE,0,(struct sockaddr*)&servaddr,len);
- n=recvfrom(sockfd,recvline,MAXLINE,0,NULL,NULL);
- recvline[n]=0;
- printf("\n Server's Echo : %s\n\n",recvline);
- return 0;
- }
- UDP message:
- Server:
- #include<sys/socket.h>
- #include<arpa/inet.h>
- #include<stdio.h>
- #include<unistd.h>
- #include<fcntl.h>
- #include<sys/types.h>
- #include<string.h>
- int main()
- {
- char buff[2000];
- char file_buffer[2000];
- int sd,connfd,len;
- struct sockaddr_in servaddr,cliaddr;
- sd = socket(AF_INET, SOCK_DGRAM, 0);
- if(sd==-1)
- {
- printf(" socket not created in server\n");
- exit(0);
- }
- else
- {
- printf("socket created in server\n");
- }
- bzero(&servaddr, sizeof(servaddr));
- servaddr.sin_family = AF_INET;
- servaddr.sin_addr.s_addr = INADDR_ANY;
- servaddr.sin_port = htons(7802);
- if ( bind(sd, (struct sockaddr *)&servaddr, sizeof(servaddr)) != 0 )
- printf("Not binded\n");
- else
- printf("Binded\n");
- len=sizeof(cliaddr);
- recvfrom(sd,buff,1024,0,
- (struct sockaddr *)&cliaddr, &len);
- printf("%s\n",buff);
- /* */
- FILE *fp;
- fp=fopen(buff,"r");
- if(fp==NULL)
- {
- printf("file does not exist\n");
- }
- fseek(fp,0,SEEK_END);
- size_t file_size=ftell(fp);
- fseek(fp,0,SEEK_SET);
- if(fread(file_buffer,file_size,1,fp)<=0)
- {
- printf("unable to copy file into buffer\n");
- exit(1);
- }
- if(sendto(sd,file_buffer,strlen(file_buffer),0, (struct sockaddr *)&cliaddr, &len)<0) {
- printf("error in sending the file\n");
- exit(1);
- }
- bzero(file_buffer,sizeof(file_buffer));
- /* */
- close(sd);
- return(0);
- }
- Client:
- #include <stdio.h>
- #include <errno.h>
- #include <sys/socket.h>
- #include <resolv.h>
- #include<netinet/in.h>
- #include<sys/types.h>
- int main()
- {
- char buff[2000];
- int sockfd,connfd,len;
- struct sockaddr_in servaddr,cliaddr;
- // create socket in client side
- sockfd = socket(AF_INET, SOCK_DGRAM, 0);
- if(sockfd==-1)
- {
- printf(" socket not created in client\n");
- exit(0);
- }
- else
- {
- printf("socket created in client\n");
- }
- bzero(&servaddr, sizeof(servaddr));
- servaddr.sin_family = AF_INET;
- servaddr.sin_addr.s_addr = INADDR_ANY; // ANY address or use specific address
- servaddr.sin_port = htons(7802); // Port address
- printf("Type ur UDP client message\n");
- scanf("%s",buff);
- // send msg to server
- sendto(sockfd, buff, strlen(buff), 0,
- (struct sockaddr *)&servaddr, sizeof(struct sockaddr));
- char file_buffer[2000];
- if (recvfrom(sockfd,file_buffer,2000,0, (struct sockaddr *)&servaddr, sizeof(struct sockaddr))<0)
- {
- printf("error in recieving the file\n");
- exit(1);
- }
- char new_file[]="copied";
- strcat(new_file,buff);
- FILE *fp;
- fp=fopen(new_file,"w+");
- if(fwrite(file_buffer,1,sizeof(file_buffer),fp)<0)
- {
- printf("error writting file\n");
- exit(1);
- }
- //close client side connection
- close(sockfd);
- return(0);
- }
- tcp/ip chat:
- SERVER
- #include<stdio.h>
- #include<netinet/in.h>
- #include<sys/types.h>
- #include<sys/socket.h>
- #include<netdb.h>
- #include<stdlib.h>
- #include<string.h>
- #define MAX 80
- #define PORT 43454
- #define SA struct sockaddr
- void func(int sockfd)
- {
- char buff[MAX];
- int n;
- for(;;)
- {
- bzero(buff,MAX);
- read(sockfd,buff,sizeof(buff));
- printf("From client: %s\t To client : ",buff);
- bzero(buff,MAX);
- n=0;
- while((buff[n++]=getchar())!='\n');
- write(sockfd,buff,sizeof(buff));
- if(strncmp("exit",buff,4)==0)
- {
- printf("Server Exit...\n");
- break;
- }
- }
- }
- int main()
- {
- int sockfd,connfd,len;
- struct sockaddr_in servaddr,cli;
- sockfd=socket(AF_INET,SOCK_STREAM,0);
- if(sockfd==-1)
- {
- printf("socket creation failed...\n");
- exit(0);
- }
- else
- printf("Socket successfully created..\n");
- bzero(&servaddr,sizeof(servaddr));
- servaddr.sin_family=AF_INET;
- servaddr.sin_addr.s_addr=htonl(INADDR_ANY);
- servaddr.sin_port=htons(PORT);
- if((bind(sockfd,(SA*)&servaddr, sizeof(servaddr)))!=0)
- {
- printf("socket bind failed...\n");
- exit(0);
- }
- else
- printf("Socket successfully binded..\n");
- if((listen(sockfd,5))!=0)
- {
- printf("Listen failed...\n");
- exit(0);
- }
- else
- printf("Server listening..\n");
- len=sizeof(cli);
- connfd=accept(sockfd,(SA *)&cli,&len);
- if(connfd<0)
- {
- printf("server acccept failed...\n");
- exit(0);
- }
- else
- printf("server acccept the client...\n");
- func(connfd);
- close(sockfd);
- }
- CLIENT
- #include<stdio.h>
- #include<netinet/in.h>
- #include<sys/types.h>
- #include<sys/socket.h>
- #include<netdb.h>
- #include<string.h>
- #include<stdlib.h>
- #define MAX 80
- #define PORT 43454
- #define SA struct sockaddr
- void func(int sockfd)
- {
- char buff[MAX];
- int n;
- for(;;)
- {
- bzero(buff,sizeof(buff));
- printf("Enter the string : ");
- n=0;
- while((buff[n++]=getchar())!='\n');
- write(sockfd,buff,sizeof(buff));
- bzero(buff,sizeof(buff));
- read(sockfd,buff,sizeof(buff));
- printf("From Server : %s",buff);
- if((strncmp(buff,"exit",4))==0)
- {
- printf("Client Exit...\n");
- break;
- }
- }
- }
- int main()
- {
- int sockfd,connfd;
- struct sockaddr_in servaddr,cli;
- sockfd=socket(AF_INET,SOCK_STREAM,0);
- if(sockfd==-1)
- {
- printf("socket creation failed...\n");
- exit(0);
- }
- else
- printf("Socket successfully created..\n");
- bzero(&servaddr,sizeof(servaddr));
- servaddr.sin_family=AF_INET;
- servaddr.sin_addr.s_addr=inet_addr("127.0.0.1");
- servaddr.sin_port=htons(PORT);
- if(connect(sockfd,(SA *)&servaddr,sizeof(servaddr))!=0)
- {
- printf("connection with the server failed...\n");
- exit(0);
- }
- else
- printf("connected to the server..\n");
- func(sockfd);
- close(sockfd);
- }
- tcp file transfer:
- filetransferserver.c
- #include<stdio.h>
- #include<sys/types.h>
- #include<string.h>
- #include<stdlib.h>
- #include<sys/socket.h>
- #include<arpa/inet.h>
- #include<unistd.h>
- #define SA struct sockaddr
- #define LISTENQ 5
- int main(int argc,char**argv)
- {
- int fd,sockfd,listenfd,connfd;
- pid_t childpid;
- socklen_t client;
- struct sockaddr_in servaddr,cliaddr;
- listenfd=socket(AF_INET,SOCK_STREAM,0);
- bzero(&servaddr,sizeof(servaddr));
- servaddr.sin_family=AF_INET;
- servaddr.sin_addr.s_addr=htonl(INADDR_ANY);
- servaddr.sin_port=htons(atoi(argv[1]));
- bind(listenfd,(SA*)&servaddr,sizeof(servaddr));
- listen(listenfd,LISTENQ);
- client=sizeof(cliaddr);
- connfd=accept(listenfd,(SA*)&cliaddr,&client);
- char buffer[100];
- FILE *fp;
- read(connfd,buffer,100);
- fp=fopen("add1.txt","w");
- fprintf(fp,"%s",buffer);
- printf("the file was received successfully");
- printf("the new file created is add1.txt");
- }
- iletransferclient.c
- #include<arpa/inet.h>
- #include<unistd.h>
- #define SA struct sockaddr
- int main(int argc,char**argv)
- {
- int sockfd;
- char fname[25];
- int len;
- struct sockaddr_in servaddr,cliaddr;
- sockfd=socket(AF_INET,SOCK_STREAM,0);
- bzero(&servaddr,sizeof(servaddr));
- servaddr.sin_family=AF_INET;
- servaddr.sin_addr.s_addr=htonl(INADDR_ANY);
- servaddr.sin_port=htons(atoi(argv[1]));
- inet_pton(AF_INET,argv[1],&servaddr.sin_addr);
- connect(sockfd,(SA*)&servaddr,sizeof(servaddr));
- char buffer[100];
- FILE *f;
- f=fopen("add.txt","r");
- fscanf(f,"%s",buffer);
- write(sockfd,buffer,100);
- printf("the file was sent successfully");
- }
- tcp/ip username pass
- Server :
- #include <stdio.h>
- #include <stdlib.h>
- #include <unistd.h>
- #include <errno.h>
- #include <string.h>
- #include <netdb.h>
- #include <sys/types.h>
- #include <netinet/in.h>
- #include <sys/socket.h>
- #include <arpa/inet.h>
- int main(int argc, char *argv[])
- {
- int sock_des,port,n1,n2,s1,s2;
- char null_character;
- char buffer1[100],buffer2[100],buffer3[100],buffer4[100];
- int length,new_des;
- struct sockaddr_in server_addr,client_addr;
- bzero(buffer3,sizeof(buffer3));
- printf("\n Input Authentic Username :\n");
- scanf("%s",buffer3);
- bzero(buffer4,sizeof(buffer4));
- printf("\n Input Authentic Password :\n");
- scanf("%s",buffer4);
- if(argc!=2)
- {
- printf("Usage: ./server port\n");
- exit(1);
- }
- port= atoi(argv[1]);
- if((sock_des=socket(AF_INET,SOCK_STREAM,0))==-1)
- {
- perror("socket");
- exit(1);
- }
- server_addr.sin_family = AF_INET;
- server_addr.sin_port = htons(port);
- server_addr.sin_addr.s_addr= htonl(INADDR_ANY);
- if (bind(sock_des,(const struct sockaddr *)&server_addr,sizeof(struct sockaddr))==-1)
- {
- perror("bind");
- exit(1);
- }
- if( listen(sock_des,5)==-1)
- {
- perror("listen");
- exit(1);
- }
- printf("Server is listening at port %d \n", port);
- while(1)
- {
- if((new_des=accept(sock_des,(struct sockaddr *)&client_addr,&length))==-1)
- {
- perror("accept");
- exit(1);
- }
- bzero(buffer1,sizeof(buffer1));
- n1=read(new_des,buffer1,sizeof(buffer1));
- buffer1[n1]=null_character;
- if((s1=strcmp(buffer1,buffer3))==0)
- {
- write(new_des,"Username Match!Enter Password",30);
- printf("Username Match !!!\n");
- bzero(buffer2,sizeof(buffer2));
- n2=read(new_des,buffer2,sizeof(buffer2));
- buffer2[n2]=null_character;
- if((s2=strcmp(buffer2,buffer4))==0)
- {
- write(new_des,"Password Match",15);
- printf("Password Match !!!\n");
- }
- else
- {
- write(new_des,"Password NOT Match",19);
- printf("Password NOT Match !!!\n");
- }
- }
- else
- {
- write(new_des,"Username Not Match",19);
- printf("Username Not Match !!!\n");
- }
- close(new_des);
- }
- }
- Client :-
- #include <stdio.h>
- #include <stdlib.h>
- #include <unistd.h>
- #include <errno.h>
- #include <string.h>
- #include <netdb.h>
- #include <sys/types.h>
- #include <netinet/in.h>
- #include <sys/socket.h>
- #include <arpa/inet.h>
- int main(int argc,char *argv[])
- {
- int sock_des,port,n;
- char null_character;
- struct hostent *host;
- char buffer1[100],buffer2[100],buffer3[100],buffer4[100];
- struct sockaddr_in server_addr;
- if(argc!=3)
- {
- printf("Usage: ./client hostname port\n");
- exit(1);
- }
- if((host=gethostbyname(argv[1]))==NULL)
- {
- printf("Unknown Host\n");
- exit(1);
- }
- port = atoi(argv[2]);
- if((sock_des=socket(AF_INET,SOCK_STREAM,0))==-1)
- {
- perror("socket");
- exit(1);
- }
- server_addr.sin_family = AF_INET;
- server_addr.sin_port = htons(port);
- server_addr.sin_addr = *((struct in_addr *)host->h_addr);
- if(connect(sock_des,(struct sockaddr *)&server_addr,sizeof(struct sockaddr))==-1)
- {
- perror("connect");
- exit(1);
- }
- bzero(buffer1,sizeof(buffer1));
- printf("Enter the Username :\n");
- scanf("%s",buffer1);
- write(sock_des,buffer1,sizeof(buffer1));
- bzero(buffer4,sizeof(buffer4));
- n=read(sock_des,buffer4,sizeof(buffer4));
- buffer4[n]= null_character;
- printf("Server Sent : %s\n", buffer4);
- bzero(buffer2,sizeof(buffer2));
- printf("Enter the Password :\n");
- scanf("%s",buffer2);
- write(sock_des,buffer2,sizeof(buffer2));
- bzero(buffer3,sizeof(buffer3));
- n=read(sock_des,buffer3,sizeof(buffer3));
- buffer3[n]=null_character;
- printf("Server Sent : %s\n", buffer3);
- close(sock_des);
- }
- for (i=0;i<7;i++) {
- printf("%d ",data[i]);
- }
- printf("\nenter the received data bits one by one: ");
- for (i=0;i<7;i++) {
- scanf("%d",&rec[i]);
- }
- c1=rec[6]^rec[4]^rec[2]^rec[0];
- c2=rec[5]^rec[4]^rec[1]^rec[0];
- c3=rec[3]^rec[2]^rec[1]^rec[0];
- c=c3*4+c2*2+c1 ;
- if(c==0) {
- printf("\ncongratulations there is no error: ");
- } else {
- printf("\nerron on the postion: %d\nthe correct message is \n",c);
- if(rec[7-c]==0)
- rec[7-c]=1; else
- rec[7-c]=0;
- for (i=0;i<7;i++) {
- printf("%d ",rec[i]);
- }
- }
- getch();
- }
- 6.sliding window protocol-go back n arq
- #include<iostream>
- #include<math.h>
- using namespace std;
- int main()
- {
- int m,ws,check=1,count=0;
- cout<<"enter the value of m"<<endl; //what is m???
- cin>>m;
- //calculating window size
- ws=pow(2,m)-1;
- cout<<"ws= "<<ws<<endl;
- int sn=0,sf=0,rn=0,ack,time;
- cout<<"enter time out value "<<endl;
- cin>>time;
- while(check)
- {
- //cout<<sn<<" "<<ws<<endl;
- if(sn == ws)
- {
- cout<<"window full cannot enter anymore data"<<endl;
- break;
- }
- cout<<"press 1 to transmit data else press 0"<<endl;
- cin>>check;
- sn++;
- cout<<"press 1 if acknowledgement is received else press 0"<<endl;
- cin>>ack;
- if(ack)
- {
- rn++;
- sf++;
- time=3;
- }
- else
- {
- time--;
- if(time==0)
- {
- cout<<"time out transmit again from frame "<<sf<<endl;
- sn=sf;
- }
- }
- cout<<"data frames sent= "<<sn<<endl;
- cout<<"data frames received= "<<rn<<endl;
- }
- }
- 7.client chat app using tcp ip
- chatappserver.c
- #include<sys/socket.h>
- #include<sys/types.h>
- #include<stdio.h>
- #include<arpa/inet.h>
- #include<netinet/in.h>
- #include<string.h>
- #include<unistd.h>
- #define SER_PORT 1200
- int main()
- {
- int a,sersock,newsock,n;
- char str[25],str2[25];
- struct sockaddr_in seraddr;
- struct sockaddr_in cliinfo;
- socklen_t csize=sizeof(cliinfo);
- seraddr.sin_family=AF_INET;
- seraddr.sin_port=htons(SER_PORT);
- seraddr.sin_addr.s_addr=htonl(INADDR_ANY);
- if((sersock=socket(AF_INET,SOCK_STREAM,0))<0)
- {
- error("\n socket");
- exit(0);
- }
- if(bind(sersock,(struct sockaddr *)&seraddr,sizeof(seraddr))<0)
- {
- error("\nBIND");
- exit(0);
- }
- if(listen(sersock,1)<0)
- {
- error("\n LISTEN");
- }
- if((newsock=accept(sersock,(struct sockaddr *)&cliinfo,&csize))<0)
- {
- error("\n ACCEPT");
- exit(0);
- }
- else
- printf("\n now connected to %s\n",inet_ntoa(cliinfo.sin_addr));
- read(newsock,str,sizeof(str));
- do
- {
- printf("\n client msg:%s",str);
- printf("\n server msg:");
- scanf("%s",str2);
- write(newsock,str2,sizeof(str2));
- listen(newsock,1);
- read(newsock,str,sizeof(str));
- n=strcmp(str,"BYE");
- a=strcmp(str2,"BYE");
- }
- while(n!=0||a!=0);
- close(newsock);
- close(sersock);
- return 0;
- }
Add Comment
Please, Sign In to add comment