You are on page 1of 21

/*-------------------------------------------------------------------------------NAME: ONE IN NONE

ROLL NO:NONE IN ONE


WEEK7
DESCRIPTION: CONVERT TEXT TO UPPERCASE LETTRES -CLIENTSIDE
------------------------------------------------------------------------------*/
#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/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <fcntl.h>
#define MAXBUFFER 1024
void sendstring(int , char *);
int main( int C, char *V[] )
{
int sd,fd;
char c;
struct sockaddr_in serveraddress;
char text[100];
int i=0;
sd = socket( AF_INET, SOCK_STREAM, 0 );
if( sd < 0 ) {
perror( "socket" );
exit( 1 );
}
if (V[1] == NULL ) {
printf ("PL specfiy the server's IP Address \n");
exit(0);
}
if (V[2] == NULL ) {
printf ("PL specify the server's Port No \n");
exit(0);
}
memset( &serveraddress, 0, sizeof(serveraddress) );
serveraddress.sin_family = AF_INET;
serveraddress.sin_port = htons(atoi(V[2]));//PORT NO
serveraddress.sin_addr.s_addr = inet_addr(V[1]);//ADDRESS
if (connect(sd,(struct sockaddr*)&serveraddress,
sizeof(serveraddress))<0)
{
printf("Cannot Connect to server");
exit(1);
}
printf("enter sentence to end enter #");
while(1)
{
c=getchar();
if(c=='#')
break;
text[i++]=c;
}
text[i]='\0';
sendstring(sd,text);

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;

struct sockaddr_in cliaddr, servaddr;


listenfd = socket(AF_INET, SOCK_STREAM, 0);
if (listenfd < 0 )
{
perror("socket" );
exit(1);
}
bzero(&servaddr, sizeof(servaddr));
servaddr.sin_family = AF_INET;
servaddr.sin_addr.s_addr = htonl(INADDR_ANY);
servaddr.sin_port = htons(SERV_PORT);
bind(listenfd, (struct sockaddr *) &servaddr, sizeof(servaddr));
listen(listenfd,5);
maxfd = listenfd; /* initialize */
maxi = -1; /* index into client[] array */
for (i = 0; i < FD_SETSIZE; i++)
client[i] = -1; /* -1 indicates available entry */
FD_ZERO(&allset);
FD_SET(listenfd, &allset);
/* end fig01 */
/* include fig02 */
for ( ; ; ) {
printf("Server:I am waiting-----Start of Main Loop\n");
rset = allset; /* structure assignment */
nready = select(maxfd+1, &rset, NULL, NULL, NULL);
if (FD_ISSET(listenfd, &rset)) { /* new client connection */
clilen = sizeof(cliaddr);
connfd = accept(listenfd, (struct sockaddr *) &cliaddr, &clilen);
#ifdef NOTDEF
printf("new client: %s, port %d\n",inet_ntop(AF_INET, &cliaddr.sin_addr, buf, NU
LL),ntohs(cliaddr.sin_port));
#endif
for (i = 0; i < FD_SETSIZE; i++)
if (client[i] < 0) {
client[i] = connfd; /* save descriptor */
break;
}
if (i == FD_SETSIZE)
{
printf("too many clients");
exit(0);
}
FD_SET(connfd, &allset); /* add new descriptor to set */
if (connfd > maxfd)
maxfd = connfd; /* for select */
if (i > maxi)
maxi = i; /* max index in client[] array */
if (--nready <= 0)
continue; /* no more readable descriptors
*/
}
for (i = 0; i <= maxi; i++) { /* check all clients for data */
if ( (sockfd = client[i]) < 0)
continue;
if (FD_ISSET(sockfd, &rset)) {
if ( (n = read(sockfd, line, MAXLINE)) == 0) {
/*4connection closed by client */
close(sockfd);
FD_CLR(sockfd, &allset);
client[i] = -1;

} 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

ONE@cvr wee7]$ cc -o server upper_serv.c


ONE@cvr wee7]$ ./server
am waiting-----Start of Main Loop
am waiting-----Start of Main Loop

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)
{

printf("cant create a new socket\n");


exit(1);
}
bzero(&myaddr,sizeof(struct sockaddr_in));
myaddr.sin_family=AF_INET;
myaddr.sin_port=htons(5506);
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");
bvalue=1;
}
listen(sockfd,5);
bzero(&cliaddr,sizeof(struct sockaddr_in));
len=sizeof(struct sockaddr_in);
newsockfd=accept(sockfd,(struct sockaddr *) &cliaddr,&len);
if(newsockfd<0)
{
printf("client cannot be connected\n");
exit(1);
}
read(newsockfd,&ch,sizeof(char));
read(newsockfd,&a,sizeof(int));
read(newsockfd,&b,sizeof(int));
if(ch=='A'|| ch=='a')
{
a=add(a,b);
write(newsockfd,&a,sizeof(int));
exit(1);
}
else if(ch=='S'|| ch=='s')
{
a=sub(a,b);
write(newsockfd,&a,sizeof(int));
exit(1);
}
close(newsockfd);
close(sockfd);
}
int add(int a,int b)
{
a=a+b;
return a;
}
int sub(int a,int b)
{
a=a-b;
return a;
}

/*------------------------------------------------------------------------------

-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

DESCRIPTION: PROGRAM TO IMPLEMENT PIPES


---------------------------------------------------------------------------*/
#include<stdio.h>
#include<sys/types.h>
#include<unistd.h>
main()
{
int filedes[2];//argument for pipe fn filedes[0] is for reading. filedes[1] for
writing to the
//pipe
char wrbuff[128],rdbuff[128]="hello this is child";
pid_t pid;
int i=pipe (filedes);//creates pipe
if (i==0)
{
printf("Pipe is Successfully created\n");
}
else
{
perror("");
}
pid=fork();
if(pid==0)
{
//child process
printf("In child process====%d\n",getppid());
read(filedes[0],rdbuff,128);//reading from read-end of pipe
printf("Msg from parent is %s\n",rdbuff);
}
else
{
//parent process
printf("In parent process\npid=====%d\n",getpid());
printf("Enter msg:");
scanf(" %[^\n]",wrbuff);
write(filedes[1],wrbuff,128);//writing to the write-end of pipe
}}
/*-----------------------------------------------------------------------------48@cvr printsfinal]$ cc pipes.c
[NONE IN ONE@cvr printsfinal]$ a.out
Pipe is Successfully created
In child process====20447
In parent process
pid=====20447
Enter msg:happy
Msg from parent is happy
[NONE IN ONE@cvr printsfinal]$
--------------------------------------------------------------------------*/
/*---------------------------------------------------------------------------------NAME :ONE IN NONE
ROLL NO:NONE IN ONE
DESCRIPTION: PROGRAM TO IMPLEMENT MESSAGE QUEUES -SENDING SIDE
-----------------------------------------------------------------------------------*/
#include <sys/types.h>
#include <sys/ipc.h>
#include <sys/msg.h>
#include <stdio.h>
#include <string.h>

#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

Message: "Did you get this?" Sent


[NONE IN ONE@cvr week2]$
-----------------------------------------------------------------------------------*/
/*-----------------------------------------------------------------------------NAME:ONE IN NONE
ROLL NO:NONE IN ONE
WEEK 2
DESCRIPTION:PROGRAM TO IMPLEMENT MESSAGE QUEUES
------------------------------------------------------------------------------*/
#include <sys/types.h>
#include <sys/ipc.h>
#include <sys/msg.h>
#include <stdio.h>
#define MSGSZ
128
/*
* Declare the message structure.
*/
typedef struct msgbuf {
long mtype;
char mtext[MSGSZ];
} message_buf;
main()
{
int msqid;
key_t key;
message_buf rbuf;
/*
* Get the message queue id for the
* "name" 1234, which was created by
* the server.
*/
key = 1234;
if ((msqid = msgget(key, 0666)) < 0) {
perror("msgget");
exit(1);
}
/*
* Receive an answer of message type 1.
*/
if (msgrcv(msqid, &rbuf, MSGSZ, 1, 0) < 0) {
perror("msgrcv");
exit(1);
}
/*
* Print the answer.
*/
printf("%s\n", rbuf.mtext);
exit(0);
}
/*--------------------------------------------------------------------------------OUTPUT:
[NONE IN ONE@cvr week2]$ cc msgr.c
[NONE IN ONE@cvr week2]$ a.out msgr.c
Did you get this?
[NONE IN ONE@cvr week2]$
-----------------------------------------------------------------------------*/

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

[NONE IN ONE@cvr oct22]$ ./udpserver


bind success
The string received is abc
The string reversed is cba[NONE IN ONE@cvr oct22]$
---------------------------------------------------------------*/
[NONE IN ONE@cvr printsfinal]$
/*------------------------------------------------------------------------NAME:ONE IN NONE
ROLL NO:NONE IN ONE
DATE:29/08/2011
DESCRIPTION:CLIENT SIDE PROGRAM TO REVERSE 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(5550);
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 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]$

You might also like