#include<stdio.h>#include<stdlib.h>#include<string.h>#include<sys/socket.h>#include<sys/types.h>#include<netinet/in.h>#include<arpa/inet.h>#definePORT5555voidmain(){int sockfd;structsockaddr_in serverAddr;int newSocket;structsockaddr_in newAddr;socklen_t addr_size;char buf[1024];
sockfd=socket(PF_INET,SOCK_STREAM,0);printf("Server socket Creat Successfully...\n");memset(&serverAddr,'\0',sizeof(serverAddr));
serverAddr.sin_family=AF_INET;
serverAddr.sin_port=htons(PORT);
serverAddr.sin_addr.s_addr=inet_addr("127.0.0.1");bind(sockfd,(structsockaddr*)&serverAddr,sizeof(serverAddr));printf("Bind to Port Number %d\n",4455);listen(sockfd,6);printf("Listening...\n");
newSocket=accept(sockfd,(structsockaddr*)&newAddr,&addr_size);strcpy(buf,"HELLO FROM ME");send(newSocket,buf,strlen(buf),0);printf("Data Received: %s...\n",buf);printf("Closing Connection...\n");}
tcpclient
#include<stdio.h>#include<stdlib.h>#include<string.h>#include<sys/socket.h>#include<sys/types.h>#include<netinet/in.h>#include<arpa/inet.h>#definePORT5555voidmain(){int clientScoket;structsockaddr_in serverAddr;char buf[1024];
clientScoket=socket(PF_INET,SOCK_STREAM,0);printf("Client socket Creat Successfully...\n");memset(&serverAddr,'\0',sizeof(serverAddr));
serverAddr.sin_family=AF_INET;
serverAddr.sin_port=htons(PORT);
serverAddr.sin_addr.s_addr=inet_addr("127.0.0.1");connect(clientScoket,(structsockaddr*)&serverAddr,sizeof(serverAddr));printf("Connect to Server Successfully...\n");recv(clientScoket,buf,1024,0);printf("Data Received: %s...\n",buf);printf("Closing Connection...\n");}
udpserver
#include<stdio.h>#include<netdb.h>#include<sys/socket.h>#include<sys/types.h>#include<netinet/in.h>/* Creates a datagram server. The port number is passed as an argument.This server runs forever */voiderror(char*msg){perror(msg);exit(0);}intmain(int argc,char*argv[]){int sock, length, fromlen, n;structsockaddr_in server;structsockaddr_in from;char buf[1024];if(argc(Put Less than Angle bracket)2){fprintf(stderr,"ERROR, no port provided\n");exit(0);}
sock=socket(AF_INET, SOCK_DGRAM,0);if(sock(Put Less than Angle bracket)0){error("Opening socket");}
length =sizeof(server);bzero(&server,length);
server.sin_family=AF_INET;
server.sin_addr.s_addr=INADDR_ANY;
server.sin_port=htons(atoi(argv[1]));if(bind(sock,(structsockaddr*)&server,length)(Put Less than Angle bracket)0){error("binding");}
fromlen =sizeof(structsockaddr_in);while(1){
n =recvfrom(sock,buf,1024,0,(structsockaddr*)&from,&fromlen);if(n(Put Less than Angle bracket)0){error("recvfrom");}write(1,"Received a datagram: ",21);write(1,buf,n);
n =sendto(sock,"Got your message\n",17,0,(structsockaddr*)&from,fromlen);if(n(Put Less than Angle bracket)0){error("sendto");}}}
udpclient
#include<stdio.h>#include<stdlib.h>#include<string.h>#include<sys/socket.h>#include<sys/types.h>#include<netdb.h>#include<netinet/in.h>#include<arpa/inet.h>/* UDP client in the internet domain */voiderror(char*msg){perror(msg);exit(0);}intmain(int argc,char*argv[]){int sock, length, n;structsockaddr_in server, from;structhostent*hp;char buffer[256];if(argc !=3){printf("Usage: server port\n");exit(1);}
sock=socket(AF_INET, SOCK_DGRAM,0);if(sock(Put Less than Angle bracket)0){error("socket");}
server.sin_family =AF_INET;
hp=gethostbyname(argv[1]);if(hp==0){error("Unknown Host");}bcopy((char*)hp-(Put Greater than Angle Bracket)h_addr,(char*)&server.sin_addr,hp-(Put Greater than Angle Bracket)h_length);
server.sin_port =htons(atoi(argv[2]));
length=sizeof(structsockaddr_in);printf("Please enter the message: ");bzero(buffer,256);fgets(buffer,255,stdin);
n=sendto(sock,buffer,strlen(buffer),0,&server,length);if(n(Put Less than Angle bracket)0){error("Sendto");}
n =recvfrom(sock,buffer,256,0,&from,&length);if(n(Put Less than Angle bracket)0){error("recvfrom");}write(1,"Got an ack: ",12);write(1,buffer,n);}