From f0424e31f233776a93d13caa98a4422385aedcd0 Mon Sep 17 00:00:00 2001 From: Unknown Date: Mon, 26 Nov 2018 21:49:09 +0000 Subject: fuck niggas --- server/server.cpp | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) (limited to 'server/server.cpp') diff --git a/server/server.cpp b/server/server.cpp index 805239c..2c46489 100644 --- a/server/server.cpp +++ b/server/server.cpp @@ -1,8 +1,10 @@ #include "server.hpp" int server::c_server::init( ) { - if( WSAStartup( MAKEWORD( 2, 2 ), &m_sock_data ) )// windows +#if WIN32 + if( WSAStartup( MAKEWORD( 2, 2 ), &m_sock_data ) ) // windows return 1; +#endif m_socket = socket( AF_INET, SOCK_STREAM, 0 ); if( m_socket == INVALID_SOCKET ) @@ -21,21 +23,31 @@ void server::c_server::listen( ) { ::listen( m_socket, 5 ); sockaddr_in client_address{ }; - client_address.sin_port = htons( PORT_NUM ); + + // not needed, this is set in accept, values are input. + // client_address.sin_port = htons( PORT_NUM ); int len = sizeof( client_address ); SOCKET result = accept( m_socket, ( sockaddr* )( &client_address ), &len ); if( result == INVALID_SOCKET ) { printf( "socket error accepting a connection\n" ); - return; + return; } printf( "incoming connection from: %s\n", inet_ntoa( client_address.sin_addr ) ); - m_clients.push_back( std::make_shared< c_client >( result, client_address.sin_addr ) ); + + // connection established. + std::lock_guard lock( m_mutex ); + auto client = std::make_shared< c_client >( result, client_address.sin_addr ); + + client->send_message( "hello" ); + + m_clients.push_back( client ); } void server::c_server::client_loop( ) { if( m_clients.size( ) ) { + std::lock_guard lock( m_mutex ); for( auto it = m_clients.begin( ); it != m_clients.end( ); ++it ) { if( !( *it )->handle( ) ) { printf( "%s disconnected\n", ( *it )->get_ip( ) ); -- cgit v1.2.3