Path: blob/master/07-full-duplex-chat-tcp-ip/client.c
136 views
/*1* Title : Full duplex client side2* Name : Aditya Pratap Singh Rajput3* Subject : Network Protocols And Programming using C4Note : please consider the TYPOS in comments.5Thanks.6*/78#include "stdio.h"9#include "stdlib.h"10#include "string.h"11//headers for socket and related functions12#include <sys/types.h>13#include <sys/socket.h>14//for including structures which will store information needed15#include <netinet/in.h>16#include <unistd.h>17//for gethostbyname18#include "netdb.h"19#include "arpa/inet.h"2021int main()22{23int socketDescriptor;2425struct sockaddr_in serverAddress;26char sendBuffer[1000],recvBuffer[1000];2728pid_t cpid;2930bzero(&serverAddress,sizeof(serverAddress));3132serverAddress.sin_family=AF_INET;33serverAddress.sin_addr.s_addr=inet_addr("127.0.0.1");34serverAddress.sin_port=htons(5500);3536/*Creating a socket, assigning IP address and port number for that socket*/37socketDescriptor=socket(AF_INET,SOCK_STREAM,0);3839/*Connect establishes connection with the server using server IP address*/40connect(socketDescriptor,(struct sockaddr*)&serverAddress,sizeof(serverAddress));4142/*Fork is used to create a new process*/43cpid=fork();44if(cpid==0)45{46while(1)47{48bzero(&sendBuffer,sizeof(sendBuffer));49printf("\nType a message here ... ");50/*This function is used to read from server*/51fgets(sendBuffer,10000,stdin);52/*Send the message to server*/53send(socketDescriptor,sendBuffer,strlen(sendBuffer)+1,0);54printf("\nMessage sent !\n");55}56}57else58{59while(1)60{61bzero(&recvBuffer,sizeof(recvBuffer));62/*Receive the message from server*/63recv(socketDescriptor,recvBuffer,sizeof(recvBuffer),0);64printf("\nSERVER : %s\n",recvBuffer);65}66}67return 0;68}697071