#pragma once

#include "core.h"

const int HTTP_Port = 80;

namespace Socket
{

bool Init();
void Release();

//      
// ip  0,  
char* HostToIP( const char* host, char* ip );
//   
int ConnectIP( const char* ip, int port );
//  
int ConnectHost( const char* host, int port = 80 );
//   ,    ,  -1 -  
int Write( int sc, const void* data, int c_data );
//   , sz_data -   data
//wait -     
// >0   , = 0 -    , <0 - 
int Read( int sc, void* data, int sz_data, int wait = 0 );
//           ,         max_read 
// 0 -   , 1 -    ,   , 2 -   ,     ( )
//3 -   
//data -  ,   data  ,    
// max_read = 0,                 
// max_read < 0,           (      )
int Read( int sc, Mem::Data& data, int max_read, int wait = 0 ); 
void Close( int sc );
//    
int CreateListen( int port );
//       CreateListen
int Accept( int sc );
//    ,     (   )
//   ( LoopTunnel   )    .
bool StartTunnel( int s1, int s2 );
//    ,          
void LoopTunnel( int s1, int s2 );

}
