Añadido para especificar IP/puerto desde el que se conecta

master
Elena 2023-02-13 18:02:17 +01:00
parent ea591c698d
commit aa59aba51d
2 changed files with 19 additions and 3 deletions

View File

@ -427,10 +427,26 @@ void Cstr_socket_srv::pon_tout( int t_out )
} }
//********************************************************************************************************************************** //**********************************************************************************************************************************
//********************************************************************************************************************************** //**********************************************************************************************************************************
extern "C" UTILES_EXPORT BOOL str_socket_conecta( Cstr_socket *soc, char *ip, int puerto ) extern "C" UTILES_EXPORT BOOL str_socket_conecta(Cstr_socket * soc, char* ip, int puerto, char* ip_local)
{ {
AFX_MANAGE_STATE(AfxGetStaticModuleState()); AFX_MANAGE_STATE(AfxGetStaticModuleState());
return soc->crear() && soc->conecta(ip, puerto); BOOL b = TRUE;
int n = 1;
if (ip_local && ip_local[0] != 0)
{
do
{
b = soc->crear(ip_local, puerto + n);
n++;
} while (!b && n < 5);
if (!b)
int err = GetLastError();
}
else
b = soc->crear();
return b && soc->conecta(ip, puerto);
} }
//********************************************************************************************************************************** //**********************************************************************************************************************************
extern "C" UTILES_EXPORT Cstr_socket * str_socket_crea() extern "C" UTILES_EXPORT Cstr_socket * str_socket_crea()

View File

@ -79,7 +79,7 @@ public:
}; };
//funciones de socket cliente para pinvoke----------------------------------------------------- //funciones de socket cliente para pinvoke-----------------------------------------------------
extern "C" UTILES_EXPORT Cstr_socket *str_socket_crea(); extern "C" UTILES_EXPORT Cstr_socket *str_socket_crea();
extern "C" UTILES_EXPORT BOOL str_socket_conecta(Cstr_socket *soc, char *ip, int puerto); extern "C" UTILES_EXPORT BOOL str_socket_conecta(Cstr_socket *soc, char *ip, int puerto, char* ip_local=NULL);
extern "C" UTILES_EXPORT BOOL str_socket_envia(Cstr_socket *soc, char *txt); extern "C" UTILES_EXPORT BOOL str_socket_envia(Cstr_socket *soc, char *txt);
extern "C" UTILES_EXPORT int str_socket_recive(Cstr_socket* soc); extern "C" UTILES_EXPORT int str_socket_recive(Cstr_socket* soc);
extern "C" UTILES_EXPORT void str_socket_dame_buf(Cstr_socket* soc, char* buf); extern "C" UTILES_EXPORT void str_socket_dame_buf(Cstr_socket* soc, char* buf);