Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
apsrcreatix
GitHub Repository: apsrcreatix/Socket-Programming-With-C
Path: blob/master/07-full-duplex-chat-tcp-ip/client.c
136 views
1
/*
2
* Title : Full duplex client side
3
* Name : Aditya Pratap Singh Rajput
4
* Subject : Network Protocols And Programming using C
5
Note : please consider the TYPOS in comments.
6
Thanks.
7
*/
8
9
#include "stdio.h"
10
#include "stdlib.h"
11
#include "string.h"
12
//headers for socket and related functions
13
#include <sys/types.h>
14
#include <sys/socket.h>
15
//for including structures which will store information needed
16
#include <netinet/in.h>
17
#include <unistd.h>
18
//for gethostbyname
19
#include "netdb.h"
20
#include "arpa/inet.h"
21
22
int main()
23
{
24
int socketDescriptor;
25
26
struct sockaddr_in serverAddress;
27
char sendBuffer[1000],recvBuffer[1000];
28
29
pid_t cpid;
30
31
bzero(&serverAddress,sizeof(serverAddress));
32
33
serverAddress.sin_family=AF_INET;
34
serverAddress.sin_addr.s_addr=inet_addr("127.0.0.1");
35
serverAddress.sin_port=htons(5500);
36
37
/*Creating a socket, assigning IP address and port number for that socket*/
38
socketDescriptor=socket(AF_INET,SOCK_STREAM,0);
39
40
/*Connect establishes connection with the server using server IP address*/
41
connect(socketDescriptor,(struct sockaddr*)&serverAddress,sizeof(serverAddress));
42
43
/*Fork is used to create a new process*/
44
cpid=fork();
45
if(cpid==0)
46
{
47
while(1)
48
{
49
bzero(&sendBuffer,sizeof(sendBuffer));
50
printf("\nType a message here ... ");
51
/*This function is used to read from server*/
52
fgets(sendBuffer,10000,stdin);
53
/*Send the message to server*/
54
send(socketDescriptor,sendBuffer,strlen(sendBuffer)+1,0);
55
printf("\nMessage sent !\n");
56
}
57
}
58
else
59
{
60
while(1)
61
{
62
bzero(&recvBuffer,sizeof(recvBuffer));
63
/*Receive the message from server*/
64
recv(socketDescriptor,recvBuffer,sizeof(recvBuffer),0);
65
printf("\nSERVER : %s\n",recvBuffer);
66
}
67
}
68
return 0;
69
}
70
71