Finished network
This commit is contained in:
parent
200af33eff
commit
7e33f321bb
2 changed files with 55 additions and 82 deletions
|
|
@ -1,45 +1,51 @@
|
||||||
#include "Socket.hpp"
|
#include "Socket.hpp"
|
||||||
|
|
||||||
class Socket
|
sockaddr_in service;
|
||||||
|
int Socket::winInit()
|
||||||
|
|
||||||
{
|
{
|
||||||
private:
|
WSADATA wsaData;
|
||||||
Logger log;
|
if (WSAStartup(MAKEWORD(2, 2), &wsaData) != 0) {
|
||||||
|
log.err("Network.Socket.winInit: Initialization error");
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
log.info("Network.Socket.winInit: WSA initialized");
|
||||||
|
|
||||||
public:
|
mainSocket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
|
||||||
int winInit()
|
if (mainSocket == INVALID_SOCKET) {
|
||||||
{
|
log.err("Network.Socket.winInit: Error creating socket: " + std::to_string(WSAGetLastError()));
|
||||||
WSADATA wsaData;
|
WSACleanup();
|
||||||
int result = WSAStartup( MAKEWORD(2, 2), & wsaData );
|
return 1;
|
||||||
if (result != 0) log.err("Network.Socket.winInit: Initialization error");
|
}
|
||||||
|
log.info("Network.Socket.winInit: Socket created");
|
||||||
|
|
||||||
log.info("Network.Socket.winInit: Socket initialized");
|
memset(&service, 0, sizeof(service));
|
||||||
|
service.sin_family = AF_INET;
|
||||||
|
service.sin_addr.s_addr = inet_addr(NET_SOCK_ADDR);
|
||||||
|
service.sin_port = htons(NET_SOCK_PORT);
|
||||||
|
|
||||||
SOCKET mainSocket = socket( AF_INET, SOCK_STREAM, IPPROTO_TCP );
|
|
||||||
if (mainSocket == INVALID_SOCKET) {
|
return 0;
|
||||||
log.err("Network.Socket.winInit: Fatal error: Error creating socket");
|
}
|
||||||
log.err(WSAGetLastError());
|
|
||||||
WSACleanup();
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
log.info("Network.Socket.winInit: Socket created");
|
int Socket::winBind()
|
||||||
|
{
|
||||||
|
if (bind(mainSocket, (SOCKADDR*)&service, sizeof(service)) == SOCKET_ERROR) {
|
||||||
|
log.err("Network.Socket.winInit: Bind failed: " + std::to_string(WSAGetLastError()));
|
||||||
|
closesocket(mainSocket);
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
sockaddr_in service;
|
int Socket::winListen()
|
||||||
memset( & service, 0, sizeof(service) );
|
{
|
||||||
service.sin_family = AF_INET;
|
if (listen(mainSocket, SOMAXCONN) == SOCKET_ERROR) {
|
||||||
service.sin_addr.s_addr = inet_addr(NET_SOCK_ADDR);
|
log.err("Network.Socket.winInit: Listen failed: " + std::to_string(WSAGetLastError()));
|
||||||
service.sin_port = htons(NET_SOCK_PORT);
|
closesocket(mainSocket);
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
log.info("Network.Socket.winInit: Socket configured");
|
log.info("Network.Socket.winInit: Listening on " + std::string(NET_SOCK_ADDR) + ":" + std::to_string(NET_SOCK_PORT));
|
||||||
|
return 0;
|
||||||
if (bind(mainSocket, (SOCKADDR *) & service, sizeof(service)) == SOCKET_ERROR ) {
|
}
|
||||||
log.err("Network.Socket.winInit: Fatal error: Bind failed");
|
|
||||||
closesocket(mainSocket);
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
log.info("Network.Socket.winInit: Socket bound to address " + NET_SOCK_ADDR + " on port " + string to_string(NET_SOCK_PORT) + ". Ready to listen for connections");
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
@ -1,51 +1,18 @@
|
||||||
|
#pragma once
|
||||||
#include <winsock2.h>
|
#include <winsock2.h>
|
||||||
#include "../Core/Logger.hpp"
|
#include "../Core/Logger.hpp"
|
||||||
|
|
||||||
#pragma once
|
|
||||||
|
|
||||||
#define NET_SOCK_ADDR "0.0.0.0"
|
#define NET_SOCK_ADDR "0.0.0.0"
|
||||||
#define NET_SOCK_PORT 25565
|
#define NET_SOCK_PORT 25565
|
||||||
|
|
||||||
class Socket
|
class Socket
|
||||||
{
|
{
|
||||||
private:
|
private:
|
||||||
Logger log;
|
Logger log;
|
||||||
|
SOCKET mainSocket = INVALID_SOCKET;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
int winInit()
|
int winInit();
|
||||||
{
|
int winBind();
|
||||||
WSADATA wsaData;
|
int winListen();
|
||||||
int result = WSAStartup( MAKEWORD(2, 2), & wsaData );
|
};
|
||||||
if (result != 0) log.err("Network.Socket.winInit: Initialization error");
|
|
||||||
|
|
||||||
log.info("Network.Socket.winInit: Socket initialized");
|
|
||||||
|
|
||||||
SOCKET mainSocket = socket( AF_INET, SOCK_STREAM, IPPROTO_TCP );
|
|
||||||
if (mainSocket == INVALID_SOCKET) {
|
|
||||||
log.err("Network.Socket.winInit: Fatal error: Error creating socket");
|
|
||||||
log.err(WSAGetLastError());
|
|
||||||
WSACleanup();
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
log.info("Network.Socket.winInit: Socket created");
|
|
||||||
|
|
||||||
sockaddr_in service;
|
|
||||||
memset( & service, 0, sizeof(service) );
|
|
||||||
service.sin_family = AF_INET;
|
|
||||||
service.sin_addr.s_addr = inet_addr(NET_SOCK_ADDR);
|
|
||||||
service.sin_port = htons(NET_SOCK_PORT);
|
|
||||||
|
|
||||||
log.info("Network.Socket.winInit: Socket configured");
|
|
||||||
|
|
||||||
if (bind(mainSocket, (SOCKADDR *) & service, sizeof(service)) == SOCKET_ERROR ) {
|
|
||||||
log.err("Network.Socket.winInit: Fatal error: Bind failed");
|
|
||||||
closesocket(mainSocket);
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
log.info("Network.Socket.winInit: Socket bound to address " + NET_SOCK_ADDR + " on port " + string to_string(NET_SOCK_PORT) + ". Ready to listen for connections");
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue