IPC (tcp client and server for chatting )

, by Prashant Gunjal

IPC using c port programming
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
Server.c


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

int main()
{
int skt,bnd,new_skt,i,len;

char msg[100];
struct sockaddr_in addr;
skt=socket(AF_INET,SOCK_STREAM,0);

if(skt>0)
{
addr.sin_family=AF_INET;
addr.sin_port=htons(10000);
addr.sin_addr.s_addr=INADDR_ANY;
printf("\n\t*** Listining ***");
bnd=bind(skt,(struct sockaddr *) &addr,sizeof(addr));
if(bnd==0)
{
listen(skt,3);
len=sizeof(struct sockaddr_in);
new_skt=accept(skt,(struct sockaddr *) &addr,&len);
printf("\n\t*** Accepted client ***");
if(new_skt>0)
{
while(1)
{
for(i=0;i<100;i++)
msg[i]=NULL;
recv(new_skt,msg,100,0);
printf("\nClient : %s",msg);

if(strcmp(msg,"exit")==0)
break;

for(i=0;i<100;i++)
msg[i]=NULL;
printf("\nServer : ");
gets(msg);
send(new_skt,msg,strlen(msg),0);

if(strcmp(msg,"exit")==0)
break;
}
}
else
printf("\n\t**** REFUSED ****");
}
else
printf("**** Binding error ****");
}
else
printf("\n\t****Socket Creation ERROR ****");

close(skt);
}
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
client.c
#include<stdio.h>
#include<sys/socket.h>
#include<sys/types.h>
#include<netinet/in.h>
#include<stdlib.h>
#include<string.h>

int main()
{
int skt,con,i;
char ip[10],msg[100];
struct sockaddr_in address;
skt = socket(AF_INET,SOCK_STREAM,0);
if(skt>0)
{
address.sin_family=AF_INET;
address.sin_port=htons(10000);
printf("\n\tEnter Server IP : ");
gets(ip);
inet_pton(AF_INET,ip,&address.sin_addr);
con=connect(skt,(struct sockaddr *) &address,sizeof(address));
if(con==0)
{
while(1)
{
for(i=0;i<100;i++)
msg[i]=NULL;
printf("\nClient : ");
gets(msg);
send(skt,msg,strlen(msg),0);
if(strcmp(msg,"exit")==0)
break;
for(i=0;i<100;i++)
msg[i]=NULL;

recv(skt,msg,100,0);
printf("\nServer : %s",msg);
if(strcmp(msg,"exit")==0)
break;
}
}
else
printf("\n\t*** CON ERROR ****");
}
else
printf("\n****Sock creation err ****");

close(skt);
}
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

0 comments: