client server messaging same pcs but doesn`t work seperate computers.
What I have tried:
Client.cpp
#include<iostream>
#include<string.h>
#include
#include
#include
#include
#include<stdlib.h>
#include<unistd.h>
#include<netdb.h>
using namespace std;
#define IP "192.168.56.1"
int main(){
int client,server;
int portNum=1500;
bool isExit=false;
int bufsize=1024;
char buffer[bufsize];
struct sockaddr_in server_addr;
client=socket(AF_INET,SOCK_STREAM,0);
if(client<0){
cout<< "Error createing socket." <<endl;
exit(1);
}
cout<< "Client Socket created." <<endl;
server_addr.sin_family=AF_INET;
server_addr.sin_addr.s_addr = inet_addr(IP);
server_addr.sin_port=htons(portNum);
if (connect(client,(struct sockaddr *)&server_addr, sizeof(server_addr)) == 0)
cout << "=> Connection to the server " << inet_ntoa(server_addr.sin_addr) << " with port number: " << portNum << endl;
recv(client,buffer,bufsize,0);
cout<< "Connection confirmed." <<endl;
cout<< "Enter # to end the connection." <<endl;
do{
cout<< "Client:" << " " ;
do{
cin >> buffer;
send(client,buffer,bufsize,0);
if(*buffer=='#'){
send(client,buffer,bufsize,0);
*buffer='*';
isExit=true;
}
}while(*buffer != 42);
cout<< "Server: " << " " ;
do{
recv(client,buffer,bufsize,0);
cout<< buffer << " ";
if(*buffer=='#'){
*buffer='*';
isExit=true;
}
}while(*buffer != 42);
cout << endl;
}while(!isExit);
cout<< "Connection terminated." <<endl;
close(client);
return 0;
}
Server.cpp
#include<iostream>
#include<string.h>
#include
#include
#include
#include<stdlib.h>
#include<unistd.h>
#include
#define IP "127.0.0.1"
using namespace std;
int main(){
int client,server;
int portNum=1500;
bool isExit=false;
int bufsize=1024;
char buffer[bufsize];
struct sockaddr_in server_addr;
socklen_t size;
client=socket(AF_INET,SOCK_STREAM,0);
if(client<0){
cout<< "Error establishing connection." <<endl;
exit(1);
}
cout<< "Server Socket connection created." <<endl;
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;
exit(1);
}
size=sizeof(server_addr);
cout<< "Looking for clients" <<endl;
listen(client,1);
server = accept(client,(struct sockaddr*)&server_addr,&size);
if(server<0){
cout<< "Error on accepting." <<endl;
exit(1);
}
while(server>0){
strcpy(buffer,"Server connected..\n");
send(server,buffer,bufsize,0);
cout<< "Connected with client." <<endl;
cout<< "Enter # to end the connection." <<endl;
cout<< "Client: " << " " ;
do{
recv(server,buffer,bufsize,0);
cout<< buffer << " ";
if(*buffer=='#'){
*buffer='*';
isExit=true;
}
}while(*buffer!= '*');
do{
cout << "\nServer:" << " ";
do{
cin>>buffer;
send(server,buffer,bufsize,0);
if(*buffer=='#'){
send(server,buffer,bufsize,0);
*buffer='*';
isExit=true;
}
}while(*buffer != '*');
cout<< "Client: " << " " ;
do{
recv(server,buffer,bufsize,0);
cout<< buffer << " ";
if(*buffer=='#'){
*buffer='*';
isExit=true;
}
}while(*buffer != '*');
}while(!isExit);
cout<< "Connection terminated." <<endl;
isExit=false;
exit(1) ;
}
close(client);
return 0;
}