1 #include "network_controller.h"
3 NetworkController::NetworkController(const Piece::Colour & newColour, const char * newName) : Controller(newColour, newName), sfd(-1)
5 //struct protoent * tcp = getprotobyname("tcp");
7 sfd = socket(PF_INET, SOCK_STREAM, 0);
10 perror("NetworkController::NetworkController - Error creating TCP socket");
15 NetworkController::~NetworkController()
19 if (shutdown(sfd, SHUT_RDWR) == -1)
21 perror("NetworkController::~NetworkController - shutting down socket... ");
29 void NetworkController::Message(const char * string)
34 Server::Server(const Piece::Colour & newColour, const char * newName) : NetworkController(newColour, newName)
36 struct sockaddr_in name;
41 name.sin_family = AF_INET;
42 name.sin_addr.s_addr = htonl(INADDR_ANY);
43 name.sin_port = htons(NetworkController::port);
45 if (bind( sfd, (struct sockaddr *) &name, sizeof(name) ) < 0)
47 perror("Server::Server - Error binding socket");
48 close(sfd); sfd = -1; return;
51 if (listen(sfd,1) < 0)
53 perror("Server::Server - Error listening on socket");
54 close(sfd); sfd = -1; return;
56 int psd = accept(sfd, 0, 0);
61 perror("Server::Server - Error accepting connection");
62 close(sfd); sfd = -1; return;
68 cc=recv(sfd,buf,sizeof(buf), 0) ;
69 if (cc == 0) exit (0);
71 printf("message received: %s\n", buf);
76 Client::Client(const Piece::Colour & newColour, const char * newName, const char * address) : NetworkController(newColour, newName)
78 struct sockaddr_in server;
82 server.sin_family = AF_INET;
83 hp = gethostbyname("127.0.0.1");
84 bcopy ( hp->h_addr, &(server.sin_addr.s_addr), hp->h_length);
85 server.sin_port = htons(NetworkController::port);
87 if (connect(sfd, (struct sockaddr *) &server, sizeof(server)) < 0)
89 perror("Client::Client - Error connecting to server at address %s");
95 send(sfd, "HI", 2,0 );