Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - mester

#91
Gracias class_OpenGL y MAFUS. Poco a poco lo estoy entendiendo. Es que me cuesta, hay que tener en cuenta que no he hecho una carrera ni nada de informática, aún estoy en Bachillerato jeje.
Entonces si escribo

while((*s1 && *s2) == (*s1 == *s2))


Es decir, según lo explicado. ¿(*s1 && *s2) deberá devolver 1 o true si no son '\0', y (*s1 == *s2) deberá devolver 1 o ture si son iguales y 0 si son diferentes?
#92
Cita de: Stakewinner00 en 22 Diciembre 2015, 14:20 PM
https://es.wikibooks.org/wiki/Programaci%C3%B3n_en_C/Instrucciones_de_control

*x es el contenido apuntado por x, *str2 será el contenido apuntado por str2, etc

Si eso ya lo sé, pero no entiendo qué significa "(*s1 && *s2)" es decir, ¿es lo mismo que hacer (*s1 == *s2) o qué?
#93
Hola. Estaba haciendo una funcion para saber si hay una palabra dentro de una cadena, y luego ví que existe la función strstr();

int strstr(const char *str1, const char *str2) {
  char *cp = (char *) str1;
  char *s1, *s2;
  if (!*str2) return 0; //Que significa el (!*str2)
  while (*cp) {
    s1 = cp;
    s2 = (char *) str2;
    while (*s1 && *s2 && !(*s1 - *s2)) //Que significa (*s1 && *s2) y luego el && !(*s1 - *s2)
        s1++, s2++;
    if (!*s2) return 0;
    cp++;
  }
  return 1;
}


Devuelve 0 cuando ha encontrado una palabra y 1 si no.
Me gustaría saber que significado tiene '!' ante una función y ante un puntero. Y que obtienes al hacer *s1 && *s2, ¿los comparas?

Gracias.
#94
Cita de: Kaxperday en 30 Noviembre 2015, 16:44 PM
Hola, quiero hacer una red P2P donde todos los ordenadores actuarían de servidores y clientes a la vez, cada ordenador descargaría una tabla a través de un servidor web que actuaría de tracker y luego con la lista de ips de los ordenadores conectados que facilita la tabla establecerían conexión.

Pero ¿no necesito abrir los puertos de cada router si me quiero conectar a un ordenador específico?. Cuando levnto un servidor en un ordenador salta alerta del firewall y entoces permitimos permisos (también se puede añadir la excepción de manera automatizada), pero con eso no es suficiente para que alguien se pueda conectar a nuestro servidor solo con nuestra ip verdad?.

¿Habría que hacer NAT o no? ¿alternativas?.

Ejemplo: Juan de murcia con IP XX.XX.XX.XX trata de hacer connect() a Jaime de Lisboa con IP YY.YY.YY.YY, al hacer connect indica la IP de Jaime y su puerto donde Jaime tiene escuchando su servidor.

¿Se llegaría a producir esa conexión así solo vía sockets de punto a punto?, ¿o habria falta algo más, qué?.

Un saludo y gracias.

Habría que depender de un servidor que tenga el NAT activado en el router y pueda comunicar a los dos clientes.
Si quieres comunicar dos clientes/servidor, uno de ellos debería de tener un puerto abierto con el NAT activo
#95
Hacking / Re: SQLMAP a través de proxy
17 Diciembre 2015, 18:44 PM
Proxychains.
Proxychains utiliza TOR para enviar los paquetes y tal.
Su uso es simple:

proxychains sqlmap ...
#96
Ya lo he solucionado. De la siguiente manera:

HINTERNET sec;
TCHAR direct[MAX_PATH];
DWORD det=MAX_PATH;
WIN32_FIND_DATA met;
FtpGetCurrentDirectory(conexion,direct,&det); //Para determinar el directorio actual
sec=FtpFindFirstFile(conexion,direct,&met,det,0); //Asignacion
do{
if(sec==NULL)
printf("Acceso denegado\n");
else
printf("%s\n",met.cFileName);
}while(InternetFindNextFile(sec,&met));
_=0;
InternetCloseHandle(sec);


El problema principal era que la funcion:

sec=FtpFindFirstFile(conexion,direct,&met,det,0);


Estaba dentro del bucle
#97
Hola.
Estoy haciendo un cliente de FTP para Windows y de momento me va bien a excepción de listar los archivos. Utilizo la siguiente función: https://msdn.microsoft.com/en-us/library/windows/desktop/aa384146(v=vs.85).aspx
Y la uso de esta manera:

...
TCHAR direct[MAX_PATH];
DWORD det=MAX_PATH;
WIN32_FIND_DATA met;
do{//El socket es "conexion"
FtpGetCurrentDirectory(conexion,direct,&det);
if(FtpFindFirstFile(conexion,direct,&met,det,0)==NULL)
printf("NULL\n");
else
printf("%s\n",met.cFileName);
}while(InternetFindNextFile(conexion,(LPVOID)&met));
...


Al ejecutar esta función solo me imprime la primera carpeta, y si vuelvo a ejecutarla me devulve NULL.

Gracias de antemano
#98
Cita de: class_OpenGL en  2 Diciembre 2015, 07:07 AM
El software libre no es lo mismo que el software pirata...

Quitando eso, tu problema no es un error de compilación, sino de enlazado. En las opciones de enlazado (Linker settings) tienes que añadir la librería wininet .lib/.a

No sé como se hace en Dev-C++, pero en Code::Blocks se hace yendo a
Project->Build Options->Linker Settings y puesto que estamos con MinGW, en "Other linker options" tienes que escribir "-lwininet"
No lo he encontrado en Dev-C++, pero me he descargado GCC para Windows y le he puesto el parámetro -lwininet y sí que me ha funcionado jeje. Es que nunca antes había usado un IDE, siempre he programado desde terminal y en Linux.
#99
Cita de: class_OpenGL en  2 Diciembre 2015, 07:07 AM
El software libre no es lo mismo que el software pirata...

Ya lo sé, claro que lo sé llevo mucho tiempo usando Linux, en concreto Debían, sin tocar Windows. Pongo lo del software pirata porque no me gusta el código cerrado y no pienso pagar por él
#100
Hola.
Estaba siguiendo la windows api, concretamente esta guía: https://msdn.microsoft.com/en-us/library/windows/desktop/aa385096(v=vs.85).aspx
pero me da errores de compilación con cualquier compilador, tanto gcc de mingw como el de Dev-C++, que también usa mingw. Me suelta este error:

undefined reference to `InternetOpen@20`
collect2: Id returned 1 exit status


Con un codigo tan mediocre como este:

#include<stdio.h>
#include<stdlib.h>
#include<wininet.h>
int main(){
HINTERNET conexion;
conexion=InternetOpen("FTP",INTERNET_OPEN_TYPE_DIRECT,NULL,NULL,0);
return 0;
}


Y me pasa mas o menos lo mismo con los sockets.
Cuando utilizo las funciones definidas aquí: https://msdn.microsoft.com/en-us/library/windows/desktop/ms741394(v=vs.85).aspx o incluso las de un tutorial cualquiera sobre sockets en windows, me sigue dando error de compilación.
Utilzo Windows 7, obviamente pirata, (VIVA EL SOFTWARE LIBRE), supongo que lo de estar pirateado no importará, pero bueno. Windows 7 Home Premium.