Socket Programming (Single Client)
Socket Programming (Single Client)
Single Client
TCP
TCP client
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include<arpa/inet.h>
int main()
{
int sockfd,n;
struct sockaddr_in serv_addr;
char buffer[256];
serv_addr.sin_family = AF_INET;
serv_addr.sin_port = htons(5013);
serv_addr.sin_addr.s_addr=inet_addr("127.0.0.1");
memset(buffer,0,256);
n = write(sockfd,buffer,strlen(buffer));
memset(buffer,0,256);
n = read(sockfd,buffer,255);
write(1,"ACK: ",5);
write(1,buffer,n);
close(sockfd);
return 0;
}
TCP server
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
int main()
{
int sockfd, newsockfd;
char buffer[256];
int n;
serv_addr.sin_family = AF_INET;
serv_addr.sin_addr.s_addr =htonl(INADDR_ANY);
serv_addr.sin_port = htons(5013);
listen(sockfd,5);
while(1)
{
newsockfd = accept(sockfd,(struct sockaddr *)NULL,NULL);
memset(buffer,0,256);
n = read(sock,buffer,255);
close(newsockfd);
}
close(sockfd);
return 0;
}
UDP
UDP server
#include<sys/types.h>
#include<netinet/in.h>
#include<sys/socket.h>
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main()
{
int socketid,length,clientlength,senrec;
struct sockaddr_in server;
struct sockaddr_in client;
char buffer[256];
socketid=socket(AF_INET,SOCK_DGRAM,0);
length=sizeof(server);
memset(&server,0,length);
server.sin_family=AF_INET;
server.sin_addr.s_addr=htonl(INADDR_ANY);
server.sin_port=htons(5050);
while(1)
{
senrec=recvfrom(socketid,buffer,256,0,(struct sockaddr
*)&client,&clientlength);
write(1,"Received a datagram: ",21);
write(1,buffer,senrec);
senrec=sendto(socketid,"Got your message\n",17,0,(struct sockaddr
*)&client,clientlength);
}
close(socketid);
return 0;
}
UDP client
#include<sys/types.h>
#include<netinet/in.h>
#include<sys/socket.h>
#include<netdb.h>
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<arpa/inet.h>
int main()
{
int socketid,length,senrec;
struct sockaddr_in server,client;
char buf[256];
socketid=socket(AF_INET,SOCK_DGRAM,0);
server.sin_family=AF_INET;
server.sin_port=htons(5050);
server.sin_addr.s_addr=inet_addr("127.0.0.1");
length=sizeof(struct sockaddr_in);
memset(buf,0,256);
printf("enter message");
fgets(buf,255,stdin);
write(1,"ACK: ",5);
write(1,buf,senrec);
close(socketid);
return 0;
}