Professional Documents
Culture Documents
close(sd);
return 0;
}
void sendstring(int sd,char *fname)
{ int n , byteswritten=0 , written ;
char buffer[MAXBUFFER];
strcpy(buffer , fname);
n=strlen(buffer);
while (byteswritten<n)
{
written=write(sd , buffer+byteswritten,(n-byteswritten));
byteswritten+=written;
}
printf("String : %s sent to server \n",buffer);
}
/*--------------------------------------------------------------------------------output:
[NONE IN ONE@cvr wee7]$ cc -o client upper_cli.c
[NONE IN ONE@cvr wee7]$ ./client 172.16.1.201
PL specify the server's Port No
[NONE IN ONE@cvr wee7]$ ./client 172.16.1.201 5648
Cannot Connect to server[NONE IN ONE@cvr wee7]$ ./client 172.16.1.201 5648
enter sentence to end enter #abc#
String : abc sent to server
[NONE IN ONE@cvr wee7]$
----------------------------------------------------------------------------------*/
/*--------------------------------------------------------------------------------NAME: ONE IN NONE
ROLLNO: NONE IN ONE
WEEK 7
DESCRIPTION : PROGRAM TO CONVERTTEXT TO UPPERCASE LETTERS-SERVER SIDE
----------------------------------------------------------------------------------*/
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <errno.h>
#include <string.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <sys/select.h>
#include <sys/time.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <fcntl.h>
#define MAXLINE 100
#define SERV_PORT 5648
int main(int argc, char **argv)
{
int k, i, maxi, maxfd, listenfd, connfd, sockfd;
int nready, client[FD_SETSIZE];
ssize_t n;
fd_set rset, allset;
char line[MAXLINE],buf[100];
socklen_t clilen;
} else
{
printf("\n output at server\n");
for(k=0;line[k]!='\0';k++)
printf("%c",toupper(line[k]));
write(sockfd, line, n);
}
if (--nready <= 0)
break; /* no more readable descriptors
*/
}
}
}
}
/*--------------------------------------------------------------------------------------output:
[NONE IN
[NONE IN
Server:I
Server:I
output at server
ABCServer:I am waiting-----Start of Main Loop
Server:I am waiting-----Start of Main Loop
---------------------------------------------------------------------------*/
/*-------------------------------------------------------------------NMAE:
: ONE IN NONE
Roll No
: NONE IN ONE
Branch
: CSE-A
Description : client prg to add and substract a given pair
of integers using RPC
WEEK-12
.....................................................*/
#include<stdio.h>
#include<sys/socket.h>
#include<netinet/in.h>
#include<sys/types.h>
#include<unistd.h>
#include<string.h>
#include<arpa/inet.h>
main()
{
int sockfd,cvalue,a,b,c,val;
char ch;
struct sockaddr_in seraddr;
socklen_t len;
sockfd=socket(AF_INET,SOCK_STREAM,0);
if(sockfd<0)
{
printf("cant create socket\n");
exit(1);
}
bzero(&seraddr,sizeof(struct sockaddr_in));
seraddr.sin_family=AF_INET;
seraddr.sin_port=htons(5506);
val=inet_addr("172.16.1.201");
if(val==0)
{
printf("conversion failed");
}
len=sizeof(struct sockaddr_in);
cvalue=connect(sockfd,(struct sockaddr *) &seraddr,len);
if(cvalue<0)
{
printf("cant connect\n");
exit(1);
}
printf("Enter ur choice\n");
printf("A:add\nS:substract\n");
scanf("%c",&ch);
write(sockfd,&ch,sizeof(char));
printf("Enter 2 numbers\n");
scanf("%d%d",&a,&b);
write(sockfd,&a,sizeof(int));
write(sockfd,&b,sizeof(int));
read(sockfd,&a,sizeof(int));
printf("The result is %d",a);
close(sockfd);
}
/*-------------------------------------------------------input/output:
[NONE IN ONE@cvr client]$ cc rpc_client.c
[NONE IN ONE@cvr client]$ ./a.out
Enter ur choice
A:add
S:substract
s
Enter 2 numbers
30
20
The result is 10[NONE IN ONE@cvr client]$
-------------------------------------------*/
/*-----------------------------------------------------------------------NAME: ONE IN NONE
ROLL NO:NONE IN ONE
DESCRIPTION: RPC PROGRAM TO ADD TWO NUMBERS-SERVER
---------------------------------------------------------------------------*/
#include<stdio.h>
#include<netinet/in.h>
#include<sys/socket.h>
#include<sys/types.h>
#include<unistd.h>
#include<string.h>
int add(int a,int b);
int sub(int a,int b);
main()
{
int sockfd,bvalue,newsockfd,a,b;
char ch;
struct sockaddr_in myaddr,cliaddr;
socklen_t len;
sockfd=socket(AF_INET,SOCK_STREAM,0);
if(sockfd<0)
{
/*------------------------------------------------------------------------------
-NAME:ONE IN NONE
ROLL NO:NONE IN ONE
DESCRIPTION:PROGRAM TO KNOW WHETHER A GIVEN NUMBER IS PRIME OR NOT USING FIFO'S
------------------------------------------------------------------------------------*/
#include<sys/types.h>
#include<sys/stat.h>
#include<sys/errno.h>
#include<math.h>
#define PERM 0666
void client(int,int);
void server(int,int);
int main()
{
int pid,rfd,wfd;
mknod("fifo.1",S_IFIFO|PERM,0);
mknod("fifo.2",S_IFIFO|PERM,0);
pid=fork();
if(pid<0)
{
printf("can't fork");
exit(1);
}
if(pid>0)
{
wfd=open("fifo.1",1);
rfd=open("fifo.2",0);
client(rfd,wfd);
while(wait((int *)0)!=pid);
close(rfd);
close(wfd);
unlink("fifo.1");
unlink("fifo.2");
exit(0);
}
else
{
rfd=open("fifo.1",0);
wfd=open("fifo.2",1);
server(rfd,wfd);
close(rfd);
close(wfd);
exit(0);
}
}
void client(int rfd,int wfd)
{
int n;
int r;
printf("Checking for Prime using Fifo\n");
printf("Enter a number: ");
scanf("%d",&n);
write(wfd,&n,sizeof(int));
read(rfd,&r,sizeof(int));
if(r==1)
printf("is prime\n ");
else
printf("is not prime\n");
}
void server(int rfd,int wfd)
{
int n,r;
read(rfd,&n,sizeof(int));
r=prime(n);
write(wfd,&r,sizeof(int));
}
int prime(int n)
{
int i,c=2;
for(i=2;i<n;i++)
if(n%i!=0)
c++;
if(c==n)
return(1);
else
return(0);
}
/*-------------------------------------------------------------------------------:OUTPUT:
[NONE IN ONE@cvr oct22]$ cc fifosample.c
[NONE IN ONE@cvr oct22]$ a.out
Checking for Prime using Fifo
Enter a number: 3
is prime
[NONE IN ONE@cvr oct22]$ a.outc
Checking for Prime using Fifo
Enter a number: 15
is not prime
[NONE IN ONE@cvr oct22]$
-------------------------------------------------------------------------------*
/
/*-------------------------------------------------------------------------------NAME :ONE IN NONE
ROLL NO:NONE IN ONE
WEEK 1
#define MSGSZ
128
/*
* Declare the message structure.
*/
typedef struct msgbuf {
long mtype;
char mtext[MSGSZ];
} message_buf;
main()
{
int msqid;
int msgflg = IPC_CREAT | 0666;
key_t key;
message_buf sbuf;
size_t buf_length;
/*
* Get the message queue id for the
* "name" 1234, which was created by
* the server.
*/
key = 1234;
(void) fprintf(stderr, "\nmsgget: Calling msgget(%#lx,\
%#o)\n",
key, msgflg);
if ((msqid = msgget(key, msgflg )) < 0) {
perror("msgget");
exit(1);
}
else
(void) fprintf(stderr,"msgget: msgget succeeded: msqid = %d\n", msqid);
/*
* We'll send message type 1
*/
sbuf.mtype = 1;
(void) fprintf(stderr,"msgget: msgget succeeded: msqid = %d\n", msqid);
(void) strcpy(sbuf.mtext, "Did you get this?");
(void) fprintf(stderr,"msgget: msgget succeeded: msqid = %d\n", msqid);
buf_length = strlen(sbuf.mtext) + 1 ;
/*
* Send a message.
*/
if (msgsnd(msqid, &sbuf, buf_length, IPC_NOWAIT) < 0) {
printf ("%d, %d, %s, %d\n", msqid, sbuf.mtype, sbuf.mtext, buf_length);
perror("msgsnd");
exit(1);
}
else
printf("Message: \"%s\" Sent\n", sbuf.mtext);
exit(0);
}
/*-----------------------------------------------------------------------------------output:
[NONE IN ONE@cvr week2]$ cc msgq.c
[NONE IN ONE@cvr week2]$ a.out msgq.c
msgget:
msgget:
msgget:
msgget:
Calling msgget(0x4d2,01666)
msgget succeeded: msqid = 196614
msgget succeeded: msqid = 196614
msgget succeeded: msqid = 196614
/*-----------------------------------------------------------------------------NAME:ONE IN NONE
ROLL NO:NONE IN ONE
WEEK 3
DESCRIPTION: PROGRAM TO IMPLEMENT SHARED MEMORY CONCEPT
----------------------------------------------------------------------*/
#include <sys/types.h>
#include <sys/ipc.h>
#include <sys/shm.h>
#include <unistd.h>
#include <string.h>
#include <errno.h>
int main(void)
{
pid_t pid;
int *shared; /* pointer to the shm */
int shmid;
shmid = shmget(IPC_PRIVATE, sizeof(int), IPC_CREAT | 0666);
if (fork() == 0)
{ /* Child */
/* Attach to shared memory and print the pointer */
shared = shmat(shmid, (void *) 0, 0);
printf("Child pointer %u\n", shared);
*shared=1;
printf("Child value=%d\n", *shared);
sleep(2);
printf("Child value=%d\n", *shared);
}
else
{ /* Parent */
/* Attach to shared memory and print the pointer */
shared = shmat(shmid, (void *) 0, 0);
printf("Parent pointer %u\n", shared);
printf("Parent value=%d\n", *shared);
sleep(1);
*shared=42;
printf("Parent value=%d\n", *shared);
sleep(5);
shmctl(shmid, IPC_RMID, 0);
}
}
/*-------------------------------------------------------------------------------------output:
@cvr week3]$ cc sharedmem.c
[NONE IN ONE@cvr week3]$ a.out
Child pointer 1073836032
Child value=1
Parent pointer 1073836032
Parent value=1
Parent value=42
Child value=42
[NONE IN ONE@cvr week3]$
------------------------------------------------------------------------------------------*/
/*---------------------------------------------------------------------------NAME:ONE IN NONE
ROLL NO:NONE IN ONE
DATE:29/08/2011-WEEK8
DESCRIPTION:CLIENT SIDE PROGRAM TO ECHO A STRING USING SELECT() COMMAND
---------------------------------------------------------------------------*/
#include<stdio.h>
#include<sys/socket.h>
#include<netinet/in.h>
#include<sys/types.h>
#include<unistd.h>
#include<string.h>
#include<arpa/inet.h>
#include<sys/select.h>
#include<sys/time.h>
int max(int,int);
main()
{
int sockfd,cvalue,val;
char str[20];
fd_set rset;
int maxfdp1;
struct sockaddr_in seraddr;
socklen_t len;
sockfd=socket(AF_INET,SOCK_STREAM,0);
if(sockfd<0)
{
printf("cant create socket\n");
exit(1);
}
bzero(&seraddr,sizeof(struct sockaddr_in));
seraddr.sin_family=AF_INET;
seraddr.sin_port=htons(5156);
val=inet_addr("172.16.1.201");
if(val==0)
{
printf("conversion failed");
}
len=sizeof(struct sockaddr_in);
cvalue=connect(sockfd,(struct sockaddr *) &seraddr,len);
if(cvalue<0)
{
printf("cant connect\n");
exit(1);
}
FD_ZERO(&rset);
for(; ;)
{
FD_SET(fileno(stdin),&rset);
FD_SET(sockfd,&rset);
maxfdp1=max(fileno(stdin),sockfd)+1;
select(maxfdp1,&rset,NULL,NULL,NULL);
if(FD_ISSET(sockfd,&rset))
{
if(read(sockfd,str,maxfdp1*sizeof(char)==0))
{
printf("server terminated\n");
exit(0);
}
printf("The txt is %s",str);
}
if(FD_ISSET(fileno(stdin),&rset))
gets(str);
len=strlen(str)+1;
write(sockfd,str,len*sizeof(char));
read(sockfd,str,20*sizeof(char));
printf(" string is %s\n",str);
close(sockfd);
}
}
int max(int a, int b)
{
if(a>b)
return a;
else
return b;
}
/*--------------------------------[NONE IN ONE@cvr nov14]$ cc echoselcli.c
/tmp/ccWOsCTI.o(.text+0x24c): In function `main':
: the `gets' function is dangerous and should not be used.
[NONE IN ONE@cvr nov14]$ a.out
hi
string is hi
server terminated
[NONE IN ONE@cvr nov14]$
-------------------------------------*/
/*-----------------------------------------------------------------------------------------NAME:ONE IN NONE
ROLL NO:NONE IN ONE
DATE:29/08/2011-week8
DESCRIPTION:TCP concurrent server to echo given input using select function
--------------------------------------------------------------------------*/
#include<stdio.h>
#include<netinet/in.h>
#include<sys/socket.h>
#include<sys/types.h>
#include<unistd.h>
#include<string.h>
#include<sys/wait.h>
#include<stdlib.h>
void returnstr(char str[20]);
void sig_child(int signo)
{
pid_t pid;
int stat;
while((pid=waitpid(-1,&stat,WNOHANG))>0)
printf("child %d terminated\n",pid);
return;
}
void returnstr(char *str)
{
printf("%s",str);
return;
}
main()
{
int sockfd,bvalue,newsockfd,lval,n;
char str[20];
struct sockaddr_in myaddr,cliaddr;
socklen_t len;
pid_t pid;
sockfd=socket(AF_INET,SOCK_STREAM,0);
if(sockfd<0)
{
printf("cant create a new socket\n");
exit(1);
}
bzero(&myaddr,sizeof(struct sockaddr_in));
myaddr.sin_family=AF_INET;
myaddr.sin_port=htons(5156);
myaddr.sin_addr.s_addr=htonl(INADDR_ANY);
bvalue=bind(sockfd,(struct sockaddr *) &myaddr,sizeof(struct sockaddr_in));
if(bvalue<0)
{
printf("bind error\n");
exit(1);
}
lval=listen(sockfd,5);
if(lval<0)
{
printf("listen error\n");
exit(1);
}
while(1)
{
len=sizeof(struct sockaddr_in);
bzero(&cliaddr,len);
newsockfd=accept(sockfd,(struct sockaddr *) &cliaddr,&len);
if(newsockfd<0)
{
printf("client cannot be connected\n");
exit(1);
}
pid=fork();
if(pid==0)
{
close(sockfd);
n=read(newsockfd,str,20*sizeof(char));
returnstr(str);
write(newsockfd,str,n*sizeof(char));
exit(0);
}
close(newsockfd);
}
}
/*-----------------------------------------[NONE IN ONE@cvr nov14]$ cc echoselser.c
[NONE IN ONE@cvr nov14]$ a.out
hi
[2]+ Stopped
a.out
[NONE IN ONE@cvr nov14]$
-----------------------------------------*/
/*................................................
Name
Roll No
Branch
Description
:
:
:
:
ONE IN NONE
NONE IN ONE
CSE-A
UDP client prg to reverse string
................................................*/
#include<stdio.h>
#include<sys/socket.h>
#include<netinet/in.h>
#include<sys/types.h>
#include<unistd.h>
#include<string.h>
#include<arpa/inet.h>
main()
{
int sockfd,str[20],val;
struct sockaddr_in to;
socklen_t len;
sockfd=socket(AF_INET,SOCK_DGRAM,0);
if(sockfd<0)
{
printf("cant create socket\n");
exit(1);
}
printf("Enter the string\n");
scanf("%s",str);
len=sizeof(struct sockaddr_in);
bzero(&to,len);
to.sin_family=AF_INET;
to.sin_port=htons(5548);
val=inet_addr("172.16.1.201");
if(val==0)
{
printf("conversion failed");
}
sendto(sockfd,str,20*sizeof(char),0,(struct sockaddr *) &to,len);
recvfrom(sockfd,&str,20*sizeof(char),0,(struct sockaddr *) &to,&len);
printf("reversed string is %s",str);
close(sockfd);
}
/*----------------------------------------------output:
[NONE IN ONE@cvr oct22]$ cc -o udpclient udpclient.c
[NONE IN ONE@cvr oct22]$ ./udpclient
Enter the string
abc
reversed string is cba[NONE IN ONE@cvr oct22]$
-------------------------------------------------*/
/*................................................
Name
: ONE IN NONE
Roll No
: NONE IN ONE
Branch
: CSE-A
Description : UDP server prg to reverse string
week-9
................................................*/
#include<stdio.h>
#include<sys/socket.h>
#include<netinet/in.h>
#include<sys/types.h>
#include<unistd.h>
#include<string.h>
#include<arpa/inet.h>
void revstr(char *str);
main()
{
int sockfd,rbytes,bval;
char str[20];
struct sockaddr_in from;
socklen_t len;
sockfd=socket(AF_INET,SOCK_DGRAM,0);
if(sockfd<0)
{
printf("cant create socket\n");
exit(1);
}
bzero(&from,sizeof(struct sockaddr_in));
from.sin_family=AF_INET;
from.sin_port=htons(5548);
from.sin_addr.s_addr=htonl(INADDR_ANY);
len=sizeof(struct sockaddr_in);
bval=bind(sockfd,(struct sockaddr *)&from,len);
if(bval<0)
{
printf("bind error\n");
bval=1;
exit(0);
}
printf("bind success\n");
rbytes=recvfrom(sockfd,str,20*sizeof(char),0,(struct sockaddr *) &from, &len);
printf("The string received is %s",str);
revstr(str);
printf("\nThe string reversed is %s",str);
sendto(sockfd,&str,20*sizeof(char),0,(struct sockaddr *) &from, len);
close(sockfd);
}
void revstr(char *str)
{
int l,i,len;
char temp;
l=strlen(str);
len=l;
for(i=0;i<len/2;i++)
{
temp=str[i];
str[i]=str[l-1];
str[l-1]=temp;
l--;
}
return;
}
/*--------------------------------------------------------------output:
[NONE IN ONE@cvr oct22]$ cc -o udpserver udpserver.c
maxfdp1=max(fileno(stdin),sockfd)+1;
select(maxfdp1,&rset,NULL,NULL,NULL);
if(FD_ISSET(sockfd,&rset))
{
if(read(sockfd,str,maxfdp1*sizeof(char)==0))
{
printf("server terminated\n");
exit(0);
}
printf("The rev txt is %s",str);
}
if(FD_ISSET(fileno(stdin),&rset))
gets(str);
len=strlen(str)+1;
write(sockfd,str,len*sizeof(char));
read(sockfd,str,20*sizeof(char));
printf("reversed string is %s\n",str);
close(sockfd);
}
}
int max(int a, int b)
{
if(a>b)
return a;
else
return b;
}
/*---------------------------------------------------------INPUT-OUTPUT
"selectrev.c" 80L, 1671C written
[NONE IN ONE@cvr client]$ cc selectrev.c
/tmp/cc20Q6Vc.o(.text+0x24c): In function `main':
: the `gets' function is dangerous and should not be used.
[NONE IN ONE@cvr client]$ a.out
hai
reversed string is iah
server terminated
[NONE IN ONE@cvr client]$
-------------------------------------------------------*/
/*--------------------------------------------NAME:ONE IN NONE
ROLL NO:NONE IN ONE
DATE:29/08/2011
DESCRIPTION:SERVER SIDE PROGRAM TO REVERSE A STRING USING SELECT() COMMAND
-----------------------------------------------------------*/
#include<stdio.h>
#include<netinet/in.h>
#include<sys/socket.h>
#include<sys/types.h>
#include<unistd.h>
#include<string.h>
#include<sys/wait.h>
#include<stdlib.h>
void revstr(char str[20]);
void sig_child(int signo)
{
pid_t pid;
int stat;
while((pid=waitpid(-1,&stat,WNOHANG))>0)
printf("child %d terminated\n",pid);
return;
}
void revstr(char *str)
{
int l,i,len;
char temp;
l=strlen(str);
len=l;
for(i=0;i<len/2;i++)
{
temp=str[i];
str[i]=str[l-1];
str[l-1]=temp;
l--;
}
printf("%s",str);
return;
}
main()
{
int sockfd,bvalue,newsockfd,lval,n;
char str[20];
struct sockaddr_in myaddr,cliaddr;
socklen_t len;
pid_t pid;
sockfd=socket(AF_INET,SOCK_STREAM,0);
if(sockfd<0)
{
printf("cant create a new socket\n");
exit(1);
}
bzero(&myaddr,sizeof(struct sockaddr_in));
myaddr.sin_family=AF_INET;
myaddr.sin_port=htons(5550);
myaddr.sin_addr.s_addr=htonl(INADDR_ANY);
bvalue=bind(sockfd,(struct sockaddr *) &myaddr,sizeof(struct sockaddr_in));
if(bvalue<0)
{
printf("bind error\n");
exit(1);
}
lval=listen(sockfd,5);
if(lval<0)
{
printf("listen error\n");
exit(1);
}
while(1)
{
len=sizeof(struct sockaddr_in);
bzero(&cliaddr,len);
newsockfd=accept(sockfd,(struct sockaddr *) &cliaddr,&len);
if(newsockfd<0)
{
printf("client cannot be connected\n");
exit(1);
}
pid=fork();
if(pid==0)
{
close(sockfd);
n=read(newsockfd,str,20*sizeof(char));
revstr(str);
write(newsockfd,str,n*sizeof(char));
exit(0);
}
close(newsockfd);
}
}
/*----------------------------------------------------INPUT-OUTPUT
[NONE
PID
23554
24178
24617
[NONE
[NONE
[1]+
[NONE
abc
IN ONE@cvr server]$ ps
TTY
TIME CMD
pts/11 00:00:00 bash
pts/11 00:00:00 a.out
pts/11 00:00:00 ps
IN ONE@cvr server]$ kill -9 24178
IN ONE@cvr server]$ cc selectrev.c
Killed
a.out
IN ONE@cvr server]$ a.out
------------------------------------------------------*/
[NONE IN ONE@cvr printsfinal]$