in CppServerAndClient/Server/Server.cpp [56:102]
int SetupTcpServerAndAcceptTwoPlayer(Server *server, int PORT)
{
int server_fd;
struct sockaddr_in address;
int addrlen = sizeof(address);
// Create Socket (AF_INET = IPv4, SOCK_STREAM = TCP, 0 = only supported protocol (TCP))
if ((server_fd = socket(AF_INET, SOCK_STREAM, 0)) == 0)
{
std::cout << "socket creation failed";
return -1;
}
// Setup Socket options to reuse address and port
int options = 1;
if (setsockopt(server_fd, SOL_SOCKET, SO_REUSEADDR | SO_REUSEPORT,
&options, sizeof(options)))
{
std::cout<< "Setting socket options failed";
return -1;
}
// Configure address
address.sin_family = AF_INET;
address.sin_addr.s_addr = INADDR_ANY;
address.sin_port = htons( PORT );
// Bind socket to any address
if (bind(server_fd, (struct sockaddr *)&address,
sizeof(address))<0)
{
std::cout << "Binding failed";
return -1;
}
// Start listening with a max backlog of 2 connections
if (listen(server_fd, 2) < 0)
{
std::cout << "listen failed";
return -1;
}
// Accept first player
AcceptNewPlayerConnection(server_fd, addrlen, address, server);
// Accept second player
AcceptNewPlayerConnection(server_fd, addrlen, address, server);
}