I'm trying to write a pair of classes (a client and a server) that can communicate with each other.
I am relativly new to C so any pointers would be great! My simple server code (server.c) so far is:
#include <stdio.h>
#include <stdlib.h>
#include <sys/socket.h>
#include <sys/types.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <unistd.h>
void main()
{
int fd;
fd = socket(AF_INET,SOCK_STREAM,0);
struct sockaddr_in addr;
inet_pton(AF_INET, "127.0.0.1", &addr.sin_addr);
addr.sin_family = AF_INET;
addr.sin_port = htons(5000);
if (bind(fd, (struct sockaddr *)&addr, sizeof(addr)) == -1){
printf("S:ERROR BINDING SOCK\n");
close(fd);
}
if (listen(fd, 5) == -1){
printf("S:ERROR LISTENING\n");
close(fd);
}
else {
printf("S:RUNNING...\n");
}
int connfd;
struct sockaddr_in cliaddr;
socklen_t cliaddrlen = sizeof(cliaddr);
connfd = accept(fd, &cliaddr, &cliaddrlen);
if (connfd == -1){
printf("ERROR ACCEPTING CONNECTION\n");
close(fd);
}
else {
printf("S: accepted connection...");
}
}
And my client code is (client.c):
#include <stdio.h>
#include <stdlib.h>
#include <sys/socket.h>
#include <sys/types.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <unistd.h>
void main()
{
int fd;
fd = socket(AF_INET,SOCK_STREAM,0);
struct sockaddr_in addr;
inet_pton(AF_INET, "127.0.0.1", &addr.sin_addr);
addr.sin_family = AF_INET;
addr.sin_port = htons(5000);
if (connect(fd, (struct sockaddr *)&addr, sizeof(addr)) == -1){
printf("ERROR CONNECTING SOCK\n");
}
else {
printf("C:ATTEMPTING TO CONNECT...\n");
}
}
How can i set the classes up to communicate with each other? Is the problem my addesses? Or does it have to be done on different computers?
Thanks,
Logi.