domingo, 25 de noviembre de 2012

Obtener el nombre del host y la ip de una maquina con C++ y boost

Para obtener la direccion IP de una máquina en C++:
#include <netdb.h>
#include <arpa/inet.h>

char szBuffer[1024];
if(gethostname(szBuffer, sizeof(szBuffer)) != 0)
{
    std::cout << "error en gethostname" << std::endl;
}
else
{
    struct hostent *host = gethostbyname(szBuffer);
    if(host == NULL)
    {
        std::cout << "error en gethostbyname" << std::endl;
    }
    else
    {
        char * szLocalIP;
        szLocalIP = inet_ntoa (*(struct in_addr *)*host->h_addr_list);
        std::cout << "mi nombre de host es "<< host->h_name <<" y mi ip con c++   es " << szLocalIP << std::endl;
    }
}

Con boost:
#include "boost/asio.hpp"
using boost::asio::ip::tcp;

boost::asio::io_service io_service;
tcp::resolver resolver(io_service);
tcp::resolver::query query(boost::asio::ip::host_name(), "");
tcp::resolver::iterator iter = resolver.resolve(query);
tcp::resolver::iterator end; // End marker.
while (iter != end)
{
    tcp::endpoint ep = *iter++;
    std::cout << "mi nombre de host es " << boost::asio::ip::host_name() << " y mi ip con boost es " << ep.address() << std::endl;
}

viernes, 9 de noviembre de 2012

Convertir std:string a mayusculas o minusculas con stl

#include <algorithm>
#include <string>

//Para convertir a minuscula:

std::string str("Hola Caracola"),final("");
final.resize(str.length());
std::transform(str.begin(),str.end(),final.begin(),::tolower);
std::cout << "str= \"" << str << "\" final = \"" << final << "\""<< std::endl;


//Para convertir a mayuscula:
std::transform(str.begin(),str.end(),final.begin(),::toupper);
std::cout << "str= \"" << str << "\" final = \"" << final << "\"" << std::endl;


Salida:
str= "Hola Caracola" final = "hola caracola"
str= "Hola Caracola" final = "HOLA CARACOLA"
  

sábado, 3 de noviembre de 2012

Limpieza imposible. Error 46 en Brother MFC-540CN

Problema:

Al encender la impresora Brother MFC-540CN salía en pantalla el mensaje "Limpieza imposible" o "Error 46".

Solución:

Para resolver el problema de "Limpieza imposible" en la Brother MFC-540CN solo debemos resetear el contador de impresión, para ello hacemos lo siguiente:

1.- Desconectamos el cable usb de la impresora y también el de alimentación.
2.- Presionamos el botón de "Menú" y lo mantenemos pulsado, sin soltarlo conectamos el cable de alimentación y la impresora se encenderá, cuando veamos el mensaje "MAINTENANCE" soltamos el botón de "Menú".
3.- Pulsamos la tecla "arriba" hasta que veamos en pantalla el número "8" y pulsamos "Fijar".
4.- Pulsamos la tecla "arriba" hasta que veamos "0" y pulsamos "Fijar".
5.- Pulsamos la tecla "Inicio/Negro" hasta que veamos "PURGE:06414".
6.- Pulsamos la tecla "arriba" hasta que veamos en pantalla el número "2" y pulsamos "Fijar". Repetimos este paso con el número "7", "8", "3".
7.- Veremos que el contador ahora pone "PURGE:00000". Pulsamos el botón "Detener/Salir".
8.- Pulsamos la tecla "arriba" hasta que veamos en pantalla el número "9" y pulsamos "Fijar", repetimos este paso, también con el número "9".

La Brother DCP-115C se reiniciará y desaparecerá el error de "Limpieza imposible" o "Error 46".

fuente: http://www.diariomatica.com/2011/07/115-limpieza-imposible-error-46-brother.html