Showing posts with label Network Programming. Show all posts
Showing posts with label Network Programming. Show all posts

Thursday, 26 February 2015

Network Programming PPT's

SNO
Name of Concept(Networking Concepts)
Downloads
1
Introduction to Various Protocols:
2
The OSI model and TCPIP protocol suite:
3
Underlying Technology:
4
IP Addresses Classification:
5
IP Address:
6
Delivery, Forwarding and Routing Of IP Packets:
7
ARP and RARP:
8
Internet Protocol:
9
Internet Control Message Protoal(ICMP):
10
Internet Group Management Protocol(IGMP):
11
User DataGram Protocol(UDP):
12
Transmission Control Protocol(TCP):
13
Stream Control Transmission Protocol:
14
Unicast Routing Protocols(RIP, OSPF,BGP):
15
Multi-Casting and MultiCast routing Protocols:
16
Host Configuration(BOOTP and DHCP):
17
Domain Name server(DNS):
18
Remote Login(TelNet):
19
File Transfer(FTP,TFTP):
20
Electronic Mail(SMTP,POP,IMAP):
21
SNMP:
22
Worldwide Web(HTTP):
23
IP Over ATM:
24
Mobile IP:
25
multimedia:
26
Virtual Private Networks(VPN) and Network address Transmission:
27
Next Generation IPv6 and ICMPv6:
28
Security:



Read More

Tuesday, 30 December 2014

Functions of network devices

Separating (connecting) networks or expanding an existing network. 
Examples: repeaters, hubs, bridges, routers, switches, gateways  are used to provide communication between network devices.

Network devices used for Remote access

Example: Remote access devices are 56K Modems and ADSL modems

we should follow the following steps while Expanding Network

Networks cannot be made larger by simply adding new computers and more cables. it is Less efficient.
large LAN to be divided into various segments to form smaller LAN's
These LAN's should be connected using the following components.
LAN segments connected using Repeaters, bridges, routers, switches or gateways.

Why we need to use Repeaters and Hubs in Network Communication?

Repeaters or hubs works at the OSI physical layer to regenerate the network’s signal and resend them to other segments. Hubs will regenerates data and broadcasts them to all ports

what are the Limitations and Features of Hubs?


Cannot link unlike segments
Cannot join segments with different access methods (e.g. CSMA/CD and token passing)
Do not isolate and filter packets
Can connect different types of media
The most economic way of expanding networks
Bridges:
Bridges Has one input and one output
Bridges Used to isolate network traffic and computers
Bridges Has the intelligent to examine incoming packet source and destination addresses
Bridges cannot interpret higher-level information


How Bridges Work?
Bridges work at the Media Access Control Sub-layer of the OSI model
Routing table implemented to record the segment address
If destination address is in the same segment as the source address, stop transmit. Otherwise, forward to the other segment.











Read More

Thursday, 4 December 2014

Half Duplex Communication Using TCP IP Protocol

TCPIP Client Half Duplex Communication Method-2 Program
#include<stdio.h>
#include<sys/ipc.h>
#include<sys/socket.h>
#include<sys/stat.h>
#include<stdlib.h>
#include<netinet/in.h>
#include<string.h>
main(int argc,char **argv)
{
int sd,newsd,n,newsd1;
socklen_t len;
char buf[20],buf1[20];
struct sockaddr_in cAddr,sAddr;
sd=socket(PF_INET,SOCK_STREAM,0);
if(sd==-1)
{
perror("socket");
return;
}
sAddr.sin_family=PF_INET;
sAddr.sin_port=htons(atoi(argv[2]));
sAddr.sin_addr.s_addr=inet_addr(argv[1]);
if(connect(sd,(struct sockaddr *)&sAddr,sizeof(sAddr))==-1)
{
perror("connect");
return;
}
printf("connect successful\n");
while(1)
{
printf("enter msg to send...\n");
gets(buf);
n=send(sd,buf,strlen(buf),0);
if(n<0)
{
perror("send");
return;
}
printf("send successful\n");
//if(strcmp(buf,"exit")==0)
//exit(0);
n=recv(newsd,buf1,20,0);
if(n<0)
{
perror("EBADF");
return;
}
printf("%s",buf1);
if(strcmp(buf,"exit")==0)
exit(0);
}
close(sd);
}

TCPIP Server Half Duplex Communication Method-2 Program
#include<stdio.h>
#include<sys/ipc.h>
#include<sys/socket.h>
#include<sys/stat.h>
#include<stdlib.h>
#include<netinet/in.h>
#include<string.h>
main(int argc,char **argv)
{
int sd,newsd,n;
socklen_t len;
char buf[20],buf1[20];
struct sockaddr_in cAddr,sAddr;
sd=socket(PF_INET,SOCK_STREAM,0);
if(sd==-1)
{
perror("socket");
return;
}
sAddr.sin_family=PF_INET;
sAddr.sin_port=htons(atoi(argv[1]));
sAddr.sin_addr.s_addr=inet_addr("0.0.0.0");
if(bind(sd,(struct sockaddr *)&sAddr,sizeof(sAddr))==-1)
{
perror("bind");
return;
}
printf("bind successful....\n");
listen(sd,5);
len=sizeof(cAddr);
printf("waiting for client request...\n");
newsd=accept(sd,(struct sockaddr *)&cAddr,&len);
if(newsd==-1)
{
perror("accept");
return;
}
printf("connection accepted\n");
while(1)
{
printf("waiting for data...\n");
bzero(buf,20);
n=recv(newsd,buf,20,0);
if(n<0)
{
perror("recv");
return;
}
bzero(buf1,20);
printf("received: %s\n",buf);
printf("enter data to send...\n");
gets(buf1);
n=send(sd,buf1,strlen(buf),0);
if(n<0)
{
perror("send");
return;
}
//printf("%s",buf1);
if(strcmp(buf1,"exit")==0)
exit(0);
//if(strcmp(buf,"exit")==0)
//exit(0);
}
close(sd);
close(newsd);
}

Read More

Half Duplex Communication Using TCP IP Protocol

TCPIP Client Half Duplex Communication Program
#include<stdio.h>
#include<sys/ipc.h>
#include<sys/socket.h>
#include<sys/stat.h>
#include<stdlib.h>
#include<netinet/in.h>
#include<string.h>
main(int argc,char **argv)
{
int sd,newsd,ret;
socklen_t len;
char buf[20];
struct sockaddr_in cAddr,sAddr;
sd=socket(PF_INET,SOCK_STREAM,0);
if(sd==-1)
{
perror("socket");
return;
}
sAddr.sin_family=PF_INET;
sAddr.sin_port=htons(atoi(argv[2]));
sAddr.sin_addr.s_addr=inet_addr(argv[1]);
if(connect(sd,(struct sockaddr *)&sAddr,sizeof(sAddr))==-1)
{
perror("connect");
return;
}
printf("connect successful\n");
while(1)
{
printf("enter msg to send...\n");
gets(buf);
ret=send(sd,buf,strlen(buf),0);
if(strcmp(buf,"QUIT")==0)
//exit(0);
break;
if(ret==-1)
{
perror("send");
return;
}
printf("waiting for data...\n");
bzero(buf,20);
recv(sd,buf,20,0);
if(strcmp(buf,"QUIT")==0)
break;
printf("received: %s\n",buf);

}
close(sd);
}
TCPIP Server half Duplex Communication Program
#include<stdio.h>
#include<sys/ipc.h>
#include<sys/socket.h>
#include<sys/stat.h>
#include<stdlib.h>
#include<netinet/in.h>
#include<string.h>
main(int argc,char **argv)
{
int sd,newsd,ret;
socklen_t len;
char buf[20];
struct sockaddr_in cAddr,sAddr;
sd=socket(PF_INET,SOCK_STREAM,0);
if(sd==-1)
{
perror("socket");
return;
}
sAddr.sin_family=PF_INET;
sAddr.sin_port=htons(atoi(argv[1]));
sAddr.sin_addr.s_addr=inet_addr("0.0.0.0");
if(bind(sd,(struct sockaddr *)&sAddr,sizeof(sAddr))==-1)
{
perror("bind");
return;
}
printf("bind successful....\n");
listen(sd,5);
len=sizeof(cAddr);
printf("waiting for client request...\n");
newsd=accept(sd,(struct sockaddr *)&cAddr,&len);
if(newsd==-1)
{
perror("accept");
return;
}
printf("connection accepted\n");
while(1)
{
printf("waiting for data...\n");
bzero(buf,20);
recv(newsd,buf,20,0);
if(strcmp(buf,"QUIT")==0)
break;
printf("received: %s\n",buf);
printf("enter msg to send...\n");
gets(buf);
ret=send(newsd,buf,strlen(buf),0);
if(strcmp(buf,"QUIT")==0)
//exit(0);
break;
if(ret==-1)
{
perror("send");
return;
}

}
close(sd);
close(newsd);
}
Read More

Full Duplex Communication Using TCP IP Protocol

TCPIP Client Full Duplex Communication Program
#include<stdio.h>
#include<sys/ipc.h>
#include<sys/socket.h>
#include<sys/stat.h>
#include<stdlib.h>
#include<netinet/in.h>
#include<string.h>
main(int argc,char **argv)
{
int sd,newsd,ret,i,j;
socklen_t len;
char buf[20],ch;
struct sockaddr_in cAddr,sAddr;
sd=socket(PF_INET,SOCK_STREAM,0);
if(sd==-1)
{
perror("socket");
return;
}
sAddr.sin_family=PF_INET;
sAddr.sin_port=htons(atoi(argv[2]));
sAddr.sin_addr.s_addr=inet_addr(argv[1]);
if(connect(sd,(struct sockaddr *)&sAddr,sizeof(sAddr))==-1)
{
perror("connect");
return;
}
printf("connect successful\n");
if(fork()==0)
{
while(1)
{
printf("enter msg to send...\n");
gets(buf);
ret=send(sd,buf,strlen(buf),0);
if(strcmp(buf,"QUIT")==0)
break;
if(ret==-1)
{
perror("send");
return;
}
}
}
else
{
while(1)
{
printf("waiting for data...\n");
bzero(buf,20);
recv(sd,buf,20,0);
if(strcmp(buf,"QUIT")==0)
break;
for(i=0,j=strlen(buf)-1;i<j;i++,j--)
{
ch=buf[i];
buf[i]=buf[j];
buf[j]=ch;
}
printf("received: %s\n",buf);

}
}
close(sd);
}

TCPIP Server Full Duplex Communication Program
#include<stdio.h>
#include<sys/ipc.h>
#include<sys/socket.h>
#include<sys/stat.h>
#include<stdlib.h>
#include<netinet/in.h>
#include<string.h>
main(int argc,char **argv)
{
int sd,newsd,ret,i,j;
socklen_t len;
char buf[20],ch;
struct sockaddr_in cAddr,sAddr;
sd=socket(PF_INET,SOCK_STREAM,0);
if(sd==-1)
{
perror("socket");
return;
}
sAddr.sin_family=PF_INET;
sAddr.sin_port=htons(atoi(argv[1]));
sAddr.sin_addr.s_addr=inet_addr("0.0.0.0");
if(bind(sd,(struct sockaddr *)&sAddr,sizeof(sAddr))==-1)
{
perror("bind");
return;
}
printf("bind successful....\n");
listen(sd,5);
len=sizeof(cAddr);
printf("waiting for client request...\n");
newsd=accept(sd,(struct sockaddr *)&cAddr,&len);
if(newsd==-1)
{
perror("accept");
return;
}
printf("connection accepted\n");
if(fork()==0)
{
while(1)
{
printf("waiting for data...\n");
bzero(buf,20);
recv(newsd,buf,20,0);
if(strcmp(buf,"QUIT")==0)
break;
for(i=0,j=strlen(buf)-1;i<j;i++,j--)
{
ch=buf[i];
buf[i]=buf[j];
buf[j]=ch;
}
printf("received: %s\n",buf);
}
}
else
{
while(1)
{
printf("enter msg to send...\n");
gets(buf);
ret=send(newsd,buf,strlen(buf),0);
if(strcmp(buf,"QUIT")==0)
exit(0);
break;
if(ret==-1)
{
perror("send");
return;
}

}
}
close(sd);
close(newsd);
}


Read More

Upload and download data Using TCP IP Protocol

Question: client needs to send request to server, then server respond to the client request. Implement this method using TCP IP Protocol

TCPIP Client Upload and download data Program
#include<stdio.h>
#include<sys/ipc.h>
#include<sys/socket.h>
#include<sys/stat.h>
#include<stdlib.h>
#include<netinet/in.h>
#include<string.h>
main(int argc,char **argv)
{
int sd,newsd,ret,i,j;
socklen_t len;
char buf[80],ch;
struct sockaddr_in cAddr,sAddr;
sd=socket(PF_INET,SOCK_STREAM,0);
if(sd==-1)
{
perror("socket");
return;
}
sAddr.sin_family=PF_INET;
sAddr.sin_port=htons(atoi(argv[2]));
sAddr.sin_addr.s_addr=inet_addr(argv[1]);
if(connect(sd,(struct sockaddr *)&sAddr,sizeof(sAddr))==-1)
{
perror("connect");
return;
}
printf("connect successful\n");
printf("enter name of file to download...\n");
gets(buf);
ret=send(sd,buf,strlen(buf),0);
if(ret==-1)
{
perror("send");
return;
}
printf("file name send successfully...\n");

while(recv(sd,buf,80,0))
{
if(strcmp(buf,"complete")==0) 
break;
else{
printf("received: %s\n",buf);

}
}
printf("message downloaded successfully...\n");
close(sd);
}

TCPIP Server Upload Download data Program
#include<stdio.h>
#include<sys/ipc.h>
#include<sys/socket.h>
#include<sys/stat.h>
#include<stdlib.h>
#include<netinet/in.h>
#include<string.h>
main(int argc,char **argv)
{
int sd,newsd,ret,j,pos;
socklen_t len;
char buf[20],ch,str[80];
struct sockaddr_in cAddr,sAddr;
sd=socket(PF_INET,SOCK_STREAM,0);
if(sd==-1)
{
perror("socket");
return;
}
sAddr.sin_family=PF_INET;
sAddr.sin_port=htons(atoi(argv[1]));
sAddr.sin_addr.s_addr=inet_addr("0.0.0.0");
if(bind(sd,(struct sockaddr *)&sAddr,sizeof(sAddr))==-1)
{
perror("bind");
return;
}
printf("bind successful....\n");
listen(sd,5);
len=sizeof(cAddr);
printf("waiting for client request...\n");
newsd=accept(sd,(struct sockaddr *)&cAddr,&len);
if(newsd==-1)
{
perror("accept");
return;
}
printf("connection accepted\n");

printf("waiting for file name from client...\n");
bzero(buf,20);
recv(newsd,buf,20,0);
FILE *fp;
fp=fopen(buf,"r");
if(fp==NULL)
{
printf("file cannot be opened..\n");
return;
}
fseek(fp,0,2);
pos=ftell(fp);
printf("size=%d\n",pos);
rewind(fp);
int i=0;
/*while((ch=fgetc(fp))!=EOF)
{
str[i]=ch;
i++;
}*/
while((fgets(str,80,fp))!=NULL)
ret=send(newsd,str,strlen(str),0);
//ret=send(newsd,str,strlen(str),0);
if(ret==-1)
{
perror("send");
return;
}
strcpy(str,"complete");
ret=send(newsd,str,strlen(str),0);
printf("send successfull...\n");
//printf("received: %s\n",buf);
close(sd);
close(newsd);
}

Read More

Reverse a number using TCP IP Protocol

Question: send an integer from client to server and Reverse that number in Server after that Send result to client

TCPIP Client number reverse Program
#include<stdio.h>
#include<sys/ipc.h>
#include<sys/socket.h>
#include<sys/stat.h>
#include<stdlib.h>
#include<netinet/in.h>
#include<string.h>
main(int argc,char **argv)
{
int sd,newsd,ret,i,j,num,res;
socklen_t len;
char buf[20],ch;
struct sockaddr_in cAddr,sAddr;
sd=socket(PF_INET,SOCK_STREAM,0);
if(sd==-1)
{
perror("socket");
return;
}
sAddr.sin_family=PF_INET;
sAddr.sin_port=htons(atoi(argv[2]));
sAddr.sin_addr.s_addr=inet_addr(argv[1]);
if(connect(sd,(struct sockaddr *)&sAddr,sizeof(sAddr))==-1)
{
perror("connect");
return;
}
printf("connect successful\n");
printf("enter msg to send...\n");
scanf("%d",&num);
send(sd,&num,4,0);
recv(sd,&res,4,0);
printf("number after reverse is:%d\n",res);
close(sd);
}
TCPIP Server Number reverse Program
#include<stdio.h>
#include<sys/ipc.h>
#include<sys/socket.h>
#include<sys/stat.h>
#include<stdlib.h>
#include<netinet/in.h>
#include<string.h>
main(int argc,char **argv)
{
int sd,newsd,ret,i,j,rev=0,res=0,num=0;
socklen_t len;
char buf[20],ch;
struct sockaddr_in cAddr,sAddr;
sd=socket(PF_INET,SOCK_STREAM,0);
if(sd==-1)
{
perror("socket");
return;
}
sAddr.sin_family=PF_INET;
sAddr.sin_port=htons(atoi(argv[1]));
sAddr.sin_addr.s_addr=inet_addr("0.0.0.0");
if(bind(sd,(struct sockaddr *)&sAddr,sizeof(sAddr))==-1)
{
perror("bind");
return;
}
printf("bind successful....\n");
listen(sd,5);
len=sizeof(sAddr);
printf("waiting for client request...\n");
newsd=accept(sd,(struct sockaddr *)&cAddr,&len);
if(newsd==-1)
{
perror("accept");
return;
}
printf("connection accepted\n");
printf("waiting for data...\n");
//bzero(num,20);
recv(newsd,&num,4,0);
printf("num:%d\n",num);
while(num>0)
{
//rev=rev*10;
rev=(rev*10)+(num%10);
num=(num/10);
}
printf("reversed num is %d\n",rev);
ret=send(newsd,&rev,4,0);
if(ret==-1)
perror("send");
else
printf("send successful...\n");
close(sd);
close(newsd);
}

Read More

UDP Programming for Half Duplex Communication

UDP Programming for client Half Duplex Communication
#include<stdio.h>
#include<sys/ipc.h>
#include<sys/socket.h>
#include<sys/stat.h>
#include<stdlib.h>
#include<netinet/in.h>
#include<string.h>
main(int argc,char **argv)
{
int sd,newsd,ret;
socklen_t len;
char buf[20];
struct sockaddr_in cAddr,sAddr;
sd=socket(PF_INET,SOCK_DGRAM,0);
if(sd==-1)
{
perror("socket");
return;
}
sAddr.sin_family=PF_INET;
sAddr.sin_port=htons(atoi(argv[2]));
sAddr.sin_addr.s_addr=inet_addr(argv[1]);
while(1)
{
printf("enter msg:");
scanf("%s",buf);
sendto(sd,buf,strlen(buf),0,(struct sockaddr*)&sAddr,sizeof(sAddr));
printf("connect successful\n");
}
close(sd);
}
UDP Programming for Server Half Duplex Communication
#include<stdio.h>
#include<sys/ipc.h>
#include<sys/socket.h>
#include<sys/stat.h>
#include<stdlib.h>
#include<netinet/in.h>
#include<string.h>
main(int argc,char **argv)
{
int sd,newsd,ret;
socklen_t len;
char buf[20];
struct sockaddr_in cAddr,sAddr;
sd=socket(PF_INET,SOCK_DGRAM,0);
if(sd==-1)
{
perror("socket");
return;
}
sAddr.sin_family=PF_INET;
sAddr.sin_port=htons(atoi(argv[1]));
sAddr.sin_addr.s_addr=inet_addr("0.0.0.0");
if(bind(sd,(struct sockaddr*)&sAddr,sizeof(sAddr))==-1)
perror("bind");
else
printf("bind sucess\n");
while(1)
{
printf("waiting for message....\n");
bzero(buf,20);
socklen_t y=sizeof(cAddr);
recvfrom(sd,buf,20,0,(struct sockaddr *)&cAddr,&y);
printf("%s %s\n",inet_ntoa(cAddr.sin_addr.s_addr),buf);
}
close(sd);
close(newsd);
}
Read More
UDP Programming for client Full Duplex Communication
#include<stdio.h>
#include<sys/ipc.h>
#include<sys/socket.h>
#include<sys/stat.h>
#include<stdlib.h>
#include<netinet/in.h>
#include<string.h>
main(int argc,char **argv)
{
int sd,newsd,ret,i,j;
socklen_t len;
char buf[20],temp;
struct sockaddr_in cAddr,sAddr;
sd=socket(PF_INET,SOCK_DGRAM,0);
if(sd==-1)
{
perror("socket");
return;
}
sAddr.sin_family=PF_INET;
sAddr.sin_port=htons(atoi(argv[2]));
sAddr.sin_addr.s_addr=inet_addr(argv[1]);
if(fork()==0)
{
while(1)
{
printf("enter msg:");
scanf("%s",buf);
sendto(sd,buf,strlen(buf),0,(struct sockaddr*)&sAddr,sizeof(sAddr));
//printf("connect successful\n");
}
}
else
{
while(1)
{
printf("waiting for message....\n");
bzero(buf,20);
socklen_t y=sizeof(cAddr);
recvfrom(sd,buf,20,0,(struct sockaddr *)&sAddr,&y);
for(i=0,j=strlen(buf)-1;i<j;i++,j--)
{
temp=buf[i];
buf[i]=buf[j];
buf[j]=temp;
}

printf("received msg:%s\n",buf);

//if(strcmp(buf,"QUIT")==0)
//break;
//printf("%s %s\n",inet_ntoa(cAddr.sin_addr.s_addr),buf);
}
}
close(sd);
}

UDP Programming for Server Full Duplex Communication
#include<stdio.h>
#include<sys/ipc.h>
#include<sys/socket.h>
#include<sys/stat.h>
#include<stdlib.h>
#include<netinet/in.h>
#include<string.h>
main(int argc,char **argv)
{
int sd,newsd,ret,i,j;
socklen_t len;
char buf[20],temp;
struct sockaddr_in cAddr,sAddr;
sd=socket(PF_INET,SOCK_DGRAM,0);
if(sd==-1)
{
perror("socket");
return;
}
sAddr.sin_family=PF_INET;
sAddr.sin_port=htons(atoi(argv[1]));
sAddr.sin_addr.s_addr=inet_addr("0.0.0.0");
if(bind(sd,(struct sockaddr*)&sAddr,sizeof(sAddr))==-1)
perror("bind");
else
printf("bind sucess\n");
socklen_t y=sizeof(cAddr);
//printf("connect successful\n");
recvfrom(sd,buf,20,0,(struct sockaddr *)&cAddr,&y);
if(fork()==0)
{
while(1)
{
printf("waiting for message....\n");
bzero(buf,20);
recvfrom(sd,buf,20,0,(struct sockaddr *)&cAddr,&y);
for(i=0,j=strlen(buf)-1;i<j;i++,j--)
{
temp=buf[i];
buf[i]=buf[j];
buf[j]=temp;
}
printf("recv=%s\n",buf);
printf("%s %s\n",inet_ntoa(cAddr.sin_addr.s_addr),buf);
}
}
else
{
while(1)
{
printf("enter msg:");
scanf("%s",buf);
sendto(sd,buf,strlen(buf),0,(struct sockaddr*)&cAddr,sizeof(cAddr));
}
}

close(sd);
}

Read More

Sunday, 13 April 2014

UDP Programming for client
#include<stdio.h>
#include<sys/ipc.h>
#include<sys/socket.h>
#include<sys/stat.h>
#include<stdlib.h>
#include<netinet/in.h>
#include<string.h>
main(int argc,char **argv)
{
int sd,newsd,ret;
socklen_t len;
char buf[20];
struct sockaddr_in cAddr,sAddr;
sd=socket(PF_INET,SOCK_DGRAM,0);
if(sd==-1)
{
perror("socket");
return;
}
sAddr.sin_family=PF_INET;
sAddr.sin_port=htons(atoi(argv[2]));
sAddr.sin_addr.s_addr=inet_addr(argv[1]);
while(1)
{
printf("enter msg:");
scanf("%s",buf);
sendto(sd,buf,strlen(buf),0,(struct sockaddr*)&sAddr,sizeof(sAddr));
printf("connect successful\n");
}
close(sd);
}
UDP Programming for Server
#include<stdio.h>
#include<sys/ipc.h>
#include<sys/socket.h>
#include<sys/stat.h>
#include<stdlib.h>
#include<netinet/in.h>
#include<string.h>
main(int argc,char **argv)
{
int sd,newsd,ret;
socklen_t len;
char buf[20];
struct sockaddr_in cAddr,sAddr;
sd=socket(PF_INET,SOCK_DGRAM,0);
if(sd==-1)
{
perror("socket");
return;
}
sAddr.sin_family=PF_INET;
sAddr.sin_port=htons(atoi(argv[1]));
sAddr.sin_addr.s_addr=inet_addr("0.0.0.0");
if(bind(sd,(struct sockaddr*)&sAddr,sizeof(sAddr))==-1)
perror("bind");
else
printf("bind sucess\n");
while(1)
{
printf("waiting for message....\n");
bzero(buf,20);
socklen_t y=sizeof(cAddr);
recvfrom(sd,buf,20,0,(struct sockaddr *)&cAddr,&y);
printf("%s %s\n",inet_ntoa(cAddr.sin_addr.s_addr),buf);
}
close(sd);
close(newsd);
}


Read More
TCPIP Client Basic Program
#include<stdio.h>
#include<sys/ipc.h>
#include<sys/socket.h>
#include<sys/stat.h>
#include<stdlib.h>
#include<netinet/in.h>
#include<string.h>
main(int argc,char **argv)
{
int sd,newsd,ret;
socklen_t len;
char buf[20];
struct sockaddr_in cAddr,sAddr;
sd=socket(PF_INET,SOCK_STREAM,0);
if(sd==-1)
{
perror("socket");
return;
}
sAddr.sin_family=PF_INET;
sAddr.sin_port=htons(atoi(argv[2]));
sAddr.sin_addr.s_addr=inet_addr(argv[1]);
if(connect(sd,(struct sockaddr *)&sAddr,sizeof(sAddr))==-1)
{
perror("connect");
return;
}
printf("connect successful\n");
while(1)
{
printf("enter msg to send...\n");
gets(buf);
ret=send(sd,buf,strlen(buf),0);
if(strcmp(buf,"QUIT")==0)
//exit(0);
break;
if(ret==-1)
{
perror("send");
return;
}
recv(newsd,buf,20,0);
//printf("%s",buf);
if(strcmp(buf,"exit")==0)
exit(0);
}
close(sd);
}

TCPIP Server Basic Program
#include<stdio.h>
#include<sys/ipc.h>
#include<sys/socket.h>
#include<sys/stat.h>
#include<stdlib.h>
#include<netinet/in.h>
#include<strings.h>
#include<string.h>
main(int argc,char **argv)
{
int sd,newsd;
socklen_t len;
char buf[20];
struct sockaddr_in cAddr,sAddr;
sd=socket(PF_INET,SOCK_STREAM,0);
if(sd==-1)
{
perror("socket");
return;
}
sAddr.sin_family=PF_INET;
sAddr.sin_port=htons(atoi(argv[1]));
sAddr.sin_addr.s_addr=inet_addr("0.0.0.0");
if(bind(sd,(struct sockaddr *)&sAddr,sizeof(sAddr))==-1)
{
perror("bind");
return;
}
printf("bind successful....\n");
listen(sd,5);
len=sizeof(cAddr);
printf("waiting for client request...\n");
newsd=accept(sd,(struct sockaddr *)&cAddr,&len);
if(newsd==-1)
{
perror("accept");
return;
}
printf("connection accepted\n");
while(1)
{
printf("waiting for data...\n");
bzero(buf,20);
recv(newsd,buf,20,0);
if(strcmp(buf,"QUIT")==0)
break;
printf("received: %s\n",buf);
}
close(sd);
close(newsd);
}

Read More