@ -1,33 +1,24 @@  
			
		 
		
	
		
			
			 
			 
			
			 
			
			/*******************************************************************************************
  
			
		 
		
	
		
			
			 
			 
			
			 
			
			 *   
			
		 
		
	
		
			
			 
			 
			
			 
			
			 *    raylib  [ network ]  example  -  Network  Test   
			
		 
		
	
		
			
			 
			 
			
			 
			
			 *   
			
		 
		
	
		
			
			 
			 
			
			 
			
			 *    Welcome  to  raylib !   
			
		 
		
	
		
			
			 
			 
			
			 
			
			 *   
			
		 
		
	
		
			
			 
			 
			
			 
			
			 *    To  test  examples ,  just  press  F6  and  execute  raylib_compile_execute  script   
			
		 
		
	
		
			
			 
			 
			
			 
			
			 *    Note  that  compiled  executable  is  placed  in  the  same  folder  as  . c  file   
			
		 
		
	
		
			
			 
			 
			
			 
			
			 *   
			
		 
		
	
		
			
			 
			 
			
			 
			
			 *    You  can  find  all  basic  examples  on  C : \ raylib \ raylib \ examples  folder  or   
			
		 
		
	
		
			
			 
			 
			
			 
			
			 *    raylib  official  webpage :  www . raylib . com   
			
		 
		
	
		
			
			 
			 
			
			 
			
			 *   
			
		 
		
	
		
			
			 
			 
			
			 
			
			 *    Enjoy  using  raylib .  : )   
			
		 
		
	
		
			
			 
			 
			
			 
			
			 *   
			
		 
		
	
		
			
			 
			 
			
			 
			
			 *    This  example  has  been  created  using  raylib  2.0  ( www . raylib . com )   
			
		 
		
	
		
			
			 
			 
			
			 
			
			 *    raylib  is  licensed  under  an  unmodified  zlib / libpng  license  ( View  raylib . h   
			
		 
		
	
		
			
			 
			 
			
			 
			
			 * for  details )   
			
		 
		
	
		
			
			 
			 
			
			 
			
			 *   
			
		 
		
	
		
			
			 
			 
			
			 
			
			 *    Copyright  ( c )  2013 - 2016  Ramon  Santamaria  ( @ raysan5 )   
			
		 
		
	
		
			
			 
			 
			
			 
			
			 *   
			
		 
		
	
		
			
			 
			 
			
			 
			
			 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */   
			
		 
		
	
		
			
			 
			 
			
			 
			
			*  
			
		 
		
	
		
			
			 
			 
			
			 
			
			*    raylib  [ network ]  example  -  Network  Test  
			
		 
		
	
		
			
			 
			 
			
			 
			
			*  
			
		 
		
	
		
			
			 
			 
			
			 
			
			*    This  example  has  been  created  using  raylib  3.0  ( www . raylib . com )  
			
		 
		
	
		
			
			 
			 
			
			 
			
			*    raylib  is  licensed  under  an  unmodified  zlib / libpng  license  ( View  raylib . h  for  details )  
			
		 
		
	
		
			
			 
			 
			
			 
			
			*  
			
		 
		
	
		
			
			 
			 
			
			 
			
			*    Copyright  ( c )  2019 - 2020  Jak  Barnes  ( @ syphonx )  and  Ramon  Santamaria  ( @ raysan5 )  
			
		 
		
	
		
			
			 
			 
			
			 
			
			*  
			
		 
		
	
		
			
			 
			 
			
			 
			
			* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */  
			
		 
		
	
		
			
			 
			 
			
			 
			
			 
			
		 
		
	
		
			
			 
			 
			
			 
			
			# include  "raylib.h" 
  
			
		 
		
	
		
			
			 
			 
			
			 
			
			 
			
		 
		
	
		
			
			 
			 
			
			 
			
			# define RNET_IMPLEMENTATION 
  
			
		 
		
	
		
			
			 
			 
			
			 
			
			# include  "rnet.h" 
  
			
		 
		
	
		
			
			 
			 
			
			 
			
			 
			
		 
		
	
		
			
			 
			 
			
			 
			
			# include  <assert.h> 
  
			
		 
		
	
		
			
			 
			 
			
			 
			
			 
			
		 
		
	
		
			
			 
			 
			
			 
			
			void  test_network_initialise ( )  
			
		 
		
	
		
			
			 
			 
			
			 
			
			{  
			
		 
		
	
		
			
			 
			 
			
			 
			
			    assert ( InitNetwork ( )  = =  true ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    assert ( InitNetworkDevice ( )  = =  true ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			}  
			
		 
		
	
		
			
			 
			 
			
			 
			
			 
			
		 
		
	
		
			
			 
			 
			
			 
			
			void  test_socket_result ( )  
			
		 
		
	
	
		
			
				
				
				
				
					
						 
					 
				
				 
			
			 
			
			@ -50,8 +41,8 @@ void test_resolve_ip()  
			
		 
		
	
		
			
			 
			 
			
			 
			
			{  
			
		 
		
	
		
			
			 
			 
			
			 
			
			    const  char  * host  =  " 8.8.8.8 " ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    const  char  * port  =  " 8080 " ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    char          ip [ ADDRESS_IPV6_ADDRSTRLEN ] ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    char          service [ ADDRESS_MAXSERV ] ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    char  ip [ ADDRESS_IPV6_ADDRSTRLEN ] ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    char  service [ ADDRESS_MAXSERV ] ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			 
			
		 
		
	
		
			
			 
			 
			
			 
			
			    memset ( ip ,  ' \0 ' ,  ADDRESS_IPV6_ADDRSTRLEN ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    ResolveIP ( host ,  port ,  NAME_INFO_NUMERICHOST ,  ip ,  service ) ;   
			
		 
		
	
	
		
			
				
				
					
						 
					 
				
				
					
						 
					 
				
				
				 
			
			 
			
			@ -91,9 +82,9 @@ void test_resolve_ip()  
			
		 
		
	
		
			
			 
			 
			
			 
			
			 
			
		 
		
	
		
			
			 
			 
			
			 
			
			void  test_resolve_host ( )  
			
		 
		
	
		
			
			 
			 
			
			 
			
			{  
			
		 
		
	
		
			
			 
			 
			
			 
			
			    const  char  *          address  =  " localhost " ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    const  char  *          port      =  " 80 " ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    AddressInformation  * addr      =  AllocAddressList ( 3 ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    const  char  * address  =  " localhost " ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    const  char  * port  =  " 80 " ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    AddressInformation  * addr  =  AllocAddressList ( 3 ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    int  count  =  ResolveHost ( address ,  port ,  ADDRESS_TYPE_ANY ,  0 ,  addr ) ;    
			
		 
		
	
		
			
			 
			 
			
			 
			
			 
			
		 
		
	
		
			
			 
			 
			
			 
			
			    assert ( GetAddressFamily ( addr [ 0 ] )  = =  ADDRESS_TYPE_IPV6 ) ;   
			
		 
		
	
	
		
			
				
				
				
				
					
						 
					 
				
				 
			
			 
			
			@ -113,36 +104,58 @@ void test_address_list()  
			
		 
		
	
		
			
			 
			 
			
			 
			
			 
			
		 
		
	
		
			
			 
			 
			
			 
			
			void  test_socket_create ( )  
			
		 
		
	
		
			
			 
			 
			
			 
			
			{  
			
		 
		
	
		
			
			 
			 
			
			 
			
			    SocketConfig    server_cfg  =  { . host  =  " 127.0.0.1 " ,  . port  =  " 8080 " ,  . server  =  true ,  . nonblocking  =  true } ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    Socket  *        socket       =  AllocSocket ( ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    SocketConfig  server_cfg  =  {   . host  =  " 127.0.0.1 " ,  . port  =  " 8080 " ,  . server  =  true ,  . nonblocking  =  true   } ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    Socket  * socket  =  AllocSocket ( ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    SocketResult  * server_res  =  AllocSocketResult ( ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    SocketSet  *    socket_set  =  AllocSocketSet ( 1 ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    SocketSet  * socket_set  =  AllocSocketSet ( 1 ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			 
			
		 
		
	
		
			
			 
			 
			
			 
			
			    assert ( SocketCreate ( & server_cfg ,  server_res ) ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    assert ( AddSocket ( socket_set ,  server_res - > socket ) ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    assert ( SocketListen ( & server_cfg ,  server_res ) ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			}  
			
		 
		
	
		
			
			 
			 
			
			 
			
			 
			
		 
		
	
		
			
			 
			 
			
			 
			
			int  main ( )  
			
		 
		
	
		
			
			 
			 
			
			 
			
			int  main ( kt">void )  
			
		 
		
	
		
			
			 
			 
			
			 
			
			{  
			
		 
		
	
		
			
			 
			 
			
			 
			
			    int  screenWidth   =  800 ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    int  screenHeight  =  450 ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    InitWindow (   
			
		 
		
	
		
			
			 
			 
			
			 
			
			        screenWidth ,  screenHeight ,  " raylib [network] example - network test " ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    SetTargetFPS ( 60 ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    // Initialization
   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    //--------------------------------------------------------------------------------------
   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    const  int  screenWidth  =  800 ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    const  int  screenHeight  =  450 ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			 
			
		 
		
	
		
			
			 
			 
			
			 
			
			    InitWindow ( screenWidth ,  screenHeight ,  " raylib [network] example - network test " ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			      
			
		 
		
	
		
			
			 
			 
			
			 
			
			    // Run the tests
   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    test_network_initialise ( ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    test_resolve_host ( ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    // test_socket_create();
   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    //test_socket_create();
   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    test_resolve_ip ( ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			 
			
		 
		
	
		
			
			 
			 
			
			 
			
			    SetTargetFPS ( 60 ) ;                // Set our game to run at 60 frames-per-second
   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    //--------------------------------------------------------------------------------------
   
			
		 
		
	
		
			
			 
			 
			
			 
			
			 
			
		 
		
	
		
			
			 
			 
			
			 
			
			    // Main game loop
   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    while  ( ! WindowShouldClose ( ) )  {   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    while  ( ! WindowShouldClose ( ) )     // Detect window close button or ESC key
   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    {   
			
		 
		
	
		
			
			 
			 
			
			 
			
			        // Update
   
			
		 
		
	
		
			
			 
			 
			
			 
			
			        //----------------------------------------------------------------------------------
   
			
		 
		
	
		
			
			 
			 
			
			 
			
			        // TODO: Update your variables here
   
			
		 
		
	
		
			
			 
			 
			
			 
			
			        //----------------------------------------------------------------------------------
   
			
		 
		
	
		
			
			 
			 
			
			 
			
			 
			
		 
		
	
		
			
			 
			 
			
			 
			
			        // Draw
   
			
		 
		
	
		
			
			 
			 
			
			 
			
			        //----------------------------------------------------------------------------------
   
			
		 
		
	
		
			
			 
			 
			
			 
			
			        BeginDrawing ( ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			        ClearBackground ( RAYWHITE ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			        DrawText ( " Congrats! You created your first window! " ,  190 ,  200 ,  20 ,  LIGHTGRAY ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			 
			
		 
		
	
		
			
			 
			 
			
			 
			
			            ClearBackground ( RAYWHITE ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			 
			
		 
		
	
		
			
			 
			 
			
			 
			
			            DrawText ( " Congrats! You created your first window! " ,  190 ,  200 ,  20 ,  LIGHTGRAY ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			 
			
		 
		
	
		
			
			 
			 
			
			 
			
			        EndDrawing ( ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			        //----------------------------------------------------------------------------------
   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    }   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    CloseWindow ( ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			 
			
		 
		
	
		
			
			 
			 
			
			 
			
			    // De-Initialization
   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    //--------------------------------------------------------------------------------------
   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    CloseWindow ( ) ;         // Close window and OpenGL context
   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    //--------------------------------------------------------------------------------------
   
			
		 
		
	
		
			
			 
			 
			
			 
			
			 
			
		 
		
	
		
			
			 
			 
			
			 
			
			    return  0 ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			}