I've a data acquisition module from which I would like to collect data from the Ethernet port. I'm getting there in steps, currently I would like to just connect to server from a client. I've used Beej's guide to get the basic C code. But I just keep getting this connect error connect: Connection refused.
This is what I do:
The network IP mentioned here is STATIC IP which I have configured.
The port number is set to 50000 on Server side and from the client side I connect to this IP on the port 50000.
I build and run the server side application and then try to connect to it by running a client side application.
One doubt about server side, server side application returns before I start the client side application, so should I keep it running (while(1);) so that I can connect to it from the client side?
What's going wrong am I forgetting something here? Help!
I'm pasting the very slightly modified (IP and port numbers are different) Beej's C code for Server side and Client side here:
Server.c
/*
** server.c
*/
#include <stdio.h>
#include <string.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netdb.h>
#include <arpa/inet.h>
#include <netinet/in.h>
int main(int argc, char *argv[])
{
// code for a server waiting for connections
// namely a stream socket on port 3490, on this host's IP
// either IPv4 or IPv6.
int sockfd;
struct addrinfo hints, *servinfo, *p;
int rv;
memset(&hints, 0, sizeof hints);
hints.ai_family = AF_UNSPEC; // use AF_INET6 to force IPv6
hints.ai_socktype = SOCK_STREAM;
hints.ai_flags = AI_PASSIVE; // use my IP address
if ((rv = getaddrinfo(NULL, "50000", &hints, &servinfo)) != 0)
{