Código
include 'win32ax.inc' .data ;Datos de Conexion. puerto dd 123 host db '127.0.0.1',0 ;Variables. wsa WSADATA ? ;puntero a una estructura WSADATA. sock dd ? ;Handle del socket. conec hostent ? ;puntero a la estructura hostent cliente sockaddr_in ? ;puntero a la estructura sockaddr_in .code ;Funcion que se ejecuta cuando a habido algun error proc FIND_ERROR ;limpiamos y saltamos al inicio. call [WSACleanup] ;Limpiamos push 2000 call [Sleep] ;Esperamos 2 segundos. jmp start ;saltamos al inicio del programa. endp start : ;Cuerpo del Programa. push wsa push 200 call [WSAStartup] ;iniciamos la *.dll con su respectiva Version. cmp eax,0 jz siguiente ;Comprobamos que la funcion aya sido ejecutada ;Correctamente call FIND_ERROR ;de lo contrario, continuamos con nuestro ;programa. siguiente : push 6 ;IPPROTO_TCP push 1 ;SOCK_STREAM push 2 ;AF_INET call [socket] ;Creamos un Identificador de Socket. cmp eax,-1 jnz siguiente2 ;si hay un error Llamamos ala funcion ;FIND_ERROR call FIND_ERROR siguiente2 : mov [sock],eax;Guardamos el Handle. mov eax,0 ;Limpiamos el Registro eax. push host call [gethostbyname] mov [conec],eax ;guardamos el retorno de la funcion en ;la variable conec. mov eax,0 push [puerto] call [htons] mov [cliente.sin_family],2 ;AF_INET mov [cliente.sin_port],ax mov eax,[conec] mov [cliente.sin_addr],eax push 20 push cliente push [sock] call[connect] cmp eax,0 jz funciona call FIND_ERROR ;Cerramos el proceso push 0 call [ExitProcess] .end start
el programa no conecta al servidor echo en C, creo que hay un problema con la funcion connect, bueno espero que alguien me pueda ayudar .
SSaludos.