diff options
| author | Unknown <azeem@live.ru> | 2018-11-26 21:49:09 +0000 |
|---|---|---|
| committer | Unknown <azeem@live.ru> | 2018-11-26 21:49:09 +0000 |
| commit | f0424e31f233776a93d13caa98a4422385aedcd0 (patch) | |
| tree | 45a06a71c40ea8c5ec1b38076729c8d81ebbbd06 /server/server.cpp | |
| parent | 1bb1688f58bee00f37f28c2c747dac2bdca7264e (diff) | |
fuck niggas
Diffstat (limited to 'server/server.cpp')
| -rw-r--r-- | server/server.cpp | 20 |
1 files changed, 16 insertions, 4 deletions
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( ) );
|
