ServerEvents
This commit is contained in:
@@ -10,12 +10,44 @@ ServerModule::~ServerModule() {
|
||||
|
||||
void ServerModule::onLoad() {
|
||||
SteamDatagramErrMsg errMsg;
|
||||
if ( !GameNetworkingSockets_Init( nullptr, errMsg ) ) {
|
||||
//FatalError( "GameNetworkingSockets_Init failed. %s", errMsg );
|
||||
|
||||
if ( !GameNetworkingSockets_Init( nullptr, errMsg ) ) {
|
||||
std::cerr << "GameNetworkingSockets_Init() Failed: " << errMsg << std::endl;
|
||||
}
|
||||
|
||||
//g_logTimeZero = SteamNetworkingUtils()->GetLocalTimestamp();
|
||||
|
||||
//SteamNetworkingUtils()->SetDebugOutputFunction( k_ESteamNetworkingSocketsDebugOutputType_Msg, DebugOutput );
|
||||
|
||||
interface = SteamNetworkingSockets();
|
||||
|
||||
SteamNetworkingIPAddr serverLocalAddr;
|
||||
serverLocalAddr.Clear();
|
||||
serverLocalAddr.m_port = port;
|
||||
SteamNetworkingConfigValue_t opt;
|
||||
opt.SetPtr(k_ESteamNetworkingConfig_Callback_ConnectionStatusChanged, (void*)SteamNetConnectionStatusChangedCallback);
|
||||
|
||||
listenSock = interface->CreateListenSocketIP( serverLocalAddr, 1, &opt );
|
||||
if ( listenSock == k_HSteamListenSocket_Invalid )
|
||||
std::cerr << "Failed to listen on port " << port << std::endl;
|
||||
pollGroup = interface->CreatePollGroup();
|
||||
if ( pollGroup == k_HSteamNetPollGroup_Invalid )
|
||||
std::cerr << "Failed to listen on port " << port << std::endl;
|
||||
//Printf( "Server listening on port %d\n", port );
|
||||
}
|
||||
|
||||
void ServerModule::run() {
|
||||
if(running) {
|
||||
PollIncomingMessages();
|
||||
PollConnectionStateChanges();
|
||||
PollLocalUserInput();
|
||||
} else if(port >= 0) {
|
||||
|
||||
interface->CloseListenSocket(listenSock);
|
||||
listenSock = k_HSteamListenSocket_Invalid;
|
||||
|
||||
interface->DestroyPollGroup(pollGroup);
|
||||
pollGroup = k_HSteamNetPollGroup_Invalid;
|
||||
|
||||
app->stopModule(getName());
|
||||
port = -1; //just in case
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user