I was trying to create a TCP server-client chat program in c++ language but in client side connection the connect function isn't working and my connection is getting terminated.I have tried setsockopt method as well as changing the port number but nothing worked.Please do help me!! This is the client side:
#include <iostream>
#include <bits/stdc++.h>
#include <stdio.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <stdlib.h>
#include <unistd.h>
#include <netdb.h>
#include <netinet/in.h>
#include <arpa/inet.h>
using namespace std;
#define IP "10.31.10.157"
int main()
{
int port=80;
int buffersize= 1024;
char buffer[buffersize];
int client,server;
sockaddr_in server_addr;
client=socket(AF_INET,SOCK_STREAM,0);
if(client<0)
{
cout<<"Error creating socket "<<endl;
exit(1);
}
cout<<"Client Socket Created ";
server_addr.sin_family=AF_INET;
server_addr.sin_addr.s_addr= inet_addr(IP);
//server_addr.sin_addr.s_addr= inet_addr(INADDR_ANY);
server_addr.sin_port=htons(port);
if(connect(client,(struct sockaddr *) &server_addr, sizeof(server_addr))>0)
{
cout<<"\nWrite Bye to end connection\n";
while(1)
{
cout<<"Server: ";
recv(client,buffer,buffersize,0);
printf("%s\n",buffer);
cout<<"Client: ";
gets(buffer);
send(client,buffer,buffersize,0);
if(strcmp(buffer,"Bye")==0)
break;
}
}
else
cout<<"Connection Failed";
cout<<"Connection terminated \n";
//close(client);
}
server side:
#include <iostream>
#include <bits/stdc++.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <stdio.h>
#include <netinet/in.h>
#include <arpa/inet.h>
using namespace std;
int main()
{
int server,client;
int buffersize=1024;
char buffer[buffersize];
int portNum=80;
struct sockaddr_in server_addr;
socklen_t size;
client=socket(AF_INET,SOCK_STREAM,0);
if(client<0)
{
cout<<"Error establishing connection "<<endl;
return 0;
}
cout<<"Socket connection established \n";
server_addr.sin_family= AF_INET;
server_addr.sin_addr.s_addr= htons(INADDR_ANY);
server_addr.sin_port= htons(portNum);
if(bind(client, (struct sockaddr *) &server_addr, sizeof(server_addr))<0)
{
cout<<"Error binding socket "<<endl;
return 0;
}
size= sizeof(server_addr);
cout<<"Looking for clients";
listen(client,1);
server= accept(client, (struct sockaddr *)&server_addr, &size);
if(server<0)
{
cout<<"Error on accepting"<<endl;
return 0;
}
if(server>0)
{
cout<<"\nType Bye to end connection\n";
while(1)
{
cout<<"Server: ";
gets(buffer);
send(server,buffer,buffersize,0);
recv(server,buffer,buffersize,0);
cout<<"Client: ";
printf("%s",buffer);
cout<<"\n";
if(strcmp(buffer,"Bye")==0)
break;
}
}
cout<<"Connection terminated ";
//close(client);
}
The server program is working fine but the client isn't connecting to the server!!