La borre porque no funcionaba pero me falto borrar la paste donde se llama a la función de todas formas si sabes como hacer lo que estoy preguntando seria de mucha ayuda
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ú#include <stdlib.h>
#include <string.h>
#include <stdio.h>
#include <unistd.h>
#include <sys/socket.h>
#include <arpa/inet.h>
#include <netinet/in.h>
#include <netdb.h>
#include <sys/sendfile.h> //Sirve para poder enviar archivos
#include <sys/types.h> //Sirve para poder recivir archivos
#include <linux/if_packet.h>
#include <sys/ioctl.h> // Estas 2 librerias son para poder saber algunos datos sobre el
#include <net/if.h> // Cliente en cuention
#define BUFFSIZE 1
#define ERROR -1
#define BUFFERSIZE 512
// Funciones //
int login(int socket_cliente);
void direccip(int socket_cliente, struct sockaddr_in addr);
void salir(int socket_servidor, int socket_cliente);
int intentos = 0;
int main(){
int socket_servidor; //Socket del servidor para escuchar mensajes
int socket_cliente; //Socket del cliente para enviar mesajes
int puerto = 8081; //Numero de puerto en /etc/service
char BUFFER[BUFFERSIZE]; //Mensaje para usar los comandos
FILE * archivo; //Archivo sin formato
socket_servidor = socket(AF_INET, SOCK_STREAM, 0);
socklen_t longc;
// Declaracion de las escructuras;
struct sockaddr_in servidor, cliente; //Creamos las estructuras del cliente y servidor al mismo tiempo
bzero((char *)&servidor, sizeof(servidor)); //Primero llenamos de 0's la struct
servidor.sin_family = AF_INET; //Asiganamos la estructura
servidor.sin_port = htons(puerto); //Indicamos el puerto
servidor.sin_addr.s_addr = INADDR_ANY; //Esta macro especifica nuestra direccion
if(bind(socket_servidor, (struct sockaddr *)&servidor, sizeof(servidor)) < 0){ //asignamos un puerto al socket
printf("Error al asociar el puerto a la conexion\n");
return 1;
}
listen(socket_servidor,3); //Escuchamos por este puero maximo 2 clientes distintos
while(free){
intentos = 0;
printf("Escuchando en el puerto %d\n", ntohs(servidor.sin_port));
longc = sizeof(cliente); //Asignamos el tamano de la estructura a esta variable
socket_cliente = accept(socket_servidor, (struct sockaddr *)&cliente, &longc); // Esperamos una conexion
if(socket_cliente == -1){
printf("Error en al conexion\n");
return 1;
}
printf("Conectando con %s:%d\n",inet_ntoa(cliente.sin_addr),htons(cliente.sin_port));
//Login con el servidor
int conexion = login(socket_cliente);
printf("\n");
if(conexion == 12){
while(free){
bzero(BUFFER, BUFFERSIZE);
recv(socket_cliente,BUFFER,50,0);
if(strncmp(BUFFER,"IP",2) == 0){
direccip(socket_cliente, cliente);
}
if(strncmp(BUFFER,"EXIT", 4) == 0){
salir(socket_servidor, socket_cliente);
}
}
}
}
}
int login(int socket_cliente){
char user[8];
char pass[8];
if(intentos == 3){
close(socket_cliente);
return 0;
}
memset(user,0 , 8);
memset(pass,0 , 8);
printf("%i",intentos );
printf("\n");
send(socket_cliente,"Usuario: ",10,0);
read(socket_cliente,user,9);
send(socket_cliente, "Contrasena: ", 12, 0);
read(socket_cliente, pass, 8);
if(strncmp(user, "root",4) == 0){
if(strncmp(pass, "root",4) == 0){
send(socket_cliente,"Bienvenido\n",12,0);
}else{
send(socket_cliente,"ERROR\n",7,0);
intentos = intentos + 1;
login(socket_cliente);
}
}else{
send(socket_cliente,"ERROR\n",7,0);
intentos = intentos + 1;
login(socket_cliente);
}
}
void direccip(int socket_cliente, struct sockaddr_in addr){
write(socket_cliente, "Tu eres: ",9);
write(socket_cliente, inet_ntoa(addr.sin_addr), 16);
write(socket_cliente,"\n",2);
}
void salir(int socket_servidor, int socket_cliente){
write(socket_cliente, "ADIOS ;)\n", 10);
close(socket_cliente);
}
Cita de: MAFUS en 15 Junio 2018, 14:43 PMno tiene límite de intentos probé poniendo palabras al azar y aun me dejaba seguir ingresando datos
Y la página web esa no tendrá una protección contra eso, tipo deshabilitar la cuenta después de un número de intentos?
#include <windows.h>
#include <stdlib.h>
#include <iostream>
#include <string.h>
#include <time.h>
using namespace std;
void inicio();
void primer_error();
void segundo_error();
void tercer_error();
void cuarto_error();
void quinto_error();
void jugar();
void rellenar(string n);
void intentos(int intento);
void gotoxy(int x,int y){
HANDLE hcon;
hcon = GetStdHandle(STD_OUTPUT_HANDLE);
COORD pos;
pos.X = x;
pos.Y = y;
SetConsoleCursorPosition(hcon,pos);
}
int main(){
int opcion;
srand(time(NULL));
do{
cout << "1. JUGAR" << endl;
cout << "2. SALIR" << endl;
cin >> opcion;
system("cls");
switch(opcion){
case 1: jugar(); break;
case 2: cout << "HASTA LUEGO" << endl; break;
default: cout << "OPCION INCORRECTA, Intente de nuevo" << endl;
}
}while(opcion!=2);
system("pause");
return 0;
}
void inicio()
{
cout << "**********" << endl;
cout << "* " << endl;
cout << "* " << endl;
cout << "* " << endl;
cout << "* " << endl;
cout << "* " << endl;
cout << "* " << endl;
}
void primer_error()
{
system("cls");
cout << "**********" << endl;
cout << "* | " << endl;
cout << "* " << endl;
cout << "* " << endl;
cout << "* " << endl;
cout << "* " << endl;
cout << "* " << endl;
}
void segundo_error()
{
system("cls");
cout << "**********" << endl;
cout << "* | " << endl;
cout << "* O " << endl;
cout << "* " << endl;
cout << "* " << endl;
cout << "* " << endl;
cout << "* " << endl;
}
void tercer_error()
{
system("cls");
cout << "**********" << endl;
cout << "* | " << endl;
cout << "* O " << endl;
cout << "* /|\\" << endl;
cout << "* " << endl;
cout << "* " << endl;
cout << "* " << endl;
}
void cuarto_error()
{
system("cls");
cout << "**********" << endl;
cout << "* | " << endl;
cout << "* O " << endl;
cout << "* /|\\" << endl;
cout << "* A " << endl;
cout << "* / \\" << endl;
cout << "* " << endl;
}
void quinto_error()
{
system("cls");
cout << "********** " << endl;
cout << "* | " << endl;
cout << "* O " << endl;
cout << "* /|\\ " << endl;
cout << "* A " << endl;
cout << "* / \\ " << endl;
cout << "* " << endl;
cout << " PERDISTE" << endl;
}
void jugar()
{
int aleatorio;
string a="OSO", b="PAYASO", c="CUADERNO";
aleatorio=rand()%3+1;
switch(aleatorio){
case 1: rellenar(a); break;
case 2: rellenar(b); break;
case 3: rellenar(c); break;
}
}
void rellenar(string n)
{
int contador=0, aux=0, aux2, MAX=n.length();
char letra, contenedor[MAX];
for(int i=0;i<MAX;i++){
contenedor[i]='_';
}
inicio();
while(contador<5){
aux2=0;
for(int j=0;j<MAX;j++){
cout << contenedor[j] << " ";
}
gotoxy(0,8);
cout << endl;
cout << "Ingrese letra: ";
cin >> letra;
for(int k=0;k<MAX;k++){
if(letra==n[k] && contenedor[k]=='_'){
contenedor[k]=letra;
aux++;
break;
}
else{
aux2++;
}
}
if(aux==MAX){
cout << "GANASTE! La palabra oculta es: " << n << endl;
break;
}
if(aux2==MAX){
contador++;
intentos(contador);
}
}
}
void intentos(int intento)
{
switch(intento){
case 1: primer_error(); break;
case 2: segundo_error(); break;
case 3: tercer_error(); break;
case 4: cuarto_error(); break;
case 5: quinto_error(); break;
}
}
#include <iostream>
#include <stdlib.h>
#include <windows.h>
#include <fstream>
using namespace std;
int dia = 0;
int mes = 1;
int ano = 1971; //EDITA ESTA VARIABLE SI ES NECESARIO
void file(){
ofstream dic;
string nombrearchivo;
cout<<"nombre del archivo + txt?"<<endl;
getline(cin,nombrearchivo);
dic.open(nombrearchivo.c_str(),ios::out);
if(dic.fail()){
cout<<"No se puedo abrir el archivo";
exit(1);
}
for(int i = 1;i<365;i=i+1){
dia = dia + 1;
if(dia == 31){
mes = mes + 1;
dia = 1;
}
if(dia < 10 || mes < 10){
if(mes < 10 && dia < 10 ){
dic<<"0"<<dia<<"0"<<mes<<ano<<endl;
}
}else{
dic<<dia<<mes<<ano<<endl;
}
}
}
void creacion(){
for(int i = 1;i<365;i=i+1){
dia = dia + 1;
if(dia == 31){
mes = mes + 1;
dia = 1;
}
if(dia < 10 || mes < 10){
if(mes < 10 && dia < 10 ){
Sleep(20);
cout<<"0"<<dia<<"0"<<mes<<ano<<endl;
}
}else{
Sleep(20);
cout<<dia<<mes<<ano<<endl;
}
}
}
int main(){
file();
creacion();
system ("pause");
return 0;
}