PDA

Ver la versión completa : Capturar Status Servidor



EPP
07/10/2009, 09:08
Buenas estoy con ganas de testear algo a ver si me pueden dar una mano...

La idea es la siguiente, hacer un programa que se este ejecutando mientras corre el L2 que me devuelva el estado del server (si esta caido o no) y ante eso producir un evento.
Ejemplo: se cae el server entonces que se apague la PC.

Luego iré perfeccionando para otro tipo de eventos (servicios de correo, etc), hoy me interesa que no quede la PC prendida cuando cae nomas :P

Saludos

vofijatee
07/10/2009, 10:16
Buenas,

Hace un tiempo hice un programita para ver el estado de cualquier server, pones la IP el puerto y un tiempo para ir actualizando. En mi caso las unicas alertas que envía es un "beep" y/o un mensajito, además de cambiar el color de un icono que está todo el tiempo corriendo en la barra de tareas.

Código:




server Server = new server();
Server.svr_gip = "201.212.0.122";
Server.svr_lip = "201.212.0.124";

Server.svr_gport = 3456;
Server.svr_lport = 7777;
l_estado = Server.Verificar_Login();
g_estado = Server.Verificar_GameServer();



Así se instancia la clase "Server", se setean la dirección IP , puerto de Login y Gameserver.

Clase Server:



using System;
using System.Collections.Generic;
using System.Text;
using System.Net.Sockets;
using server_status;
namespace server_status
{
class server
{
// Variables
public string svr_gip; // dirección pc server
public string svr_lip; // dirección pc login
public int svr_gport; // puerto de game server
public int svr_lport; // puerto de login

public string Verificar_Login()
{
try
{
TcpClient lserver = new TcpClient(svr_lip, svr_lport);
if (lserver.Connected == true)
{
lserver.Close();
return "online";
}
else
{
lserver.Close();
return "offline";
}

}
catch (Exception ex)
{
return "offline";
}
}

public string Verificar_GameServer()
{
try
{
TcpClient gserver = new TcpClient(svr_gip, svr_gport);

if (gserver.Connected == true)
{
gserver.Close();
return "online";
}
else
{
gserver.Close();
return "offline";
}

}
catch (Exception ex)
{
return "offline";
}
}
}
}




Después lo que faltaría es un timer con la frenquencia que se quiere comprobar el estado del server :

Verificar el login:




string l_ahora = Server.Verificar_Login();
string g_ahora = Server.Verificar_GameServer();

if (l_estado != l_ahora)
{
l_estado = l_ahora;

if (chkSonido.Checked == true)
{
player.Play();
}

if (chkAlerta.Checked == true)
{
MessageBox.Show("El login está " + l_ahora, "Estado del server", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
}




Esto lo probe con este server antes que cambie de cronica, pero debería seguir funcionando. Te adjunto el código fuente completo, es muy simple y podrías modificarlo sin tener que hacer todo de 0.

Cualquier cosa avisame.

Saludos.

EPP
07/10/2009, 11:27
Sabia que si alguien me iba a poder tirar el dato eras vos ;D
Despues lo testeo y te digo que onda ;D
Graciela...

vofijatee
07/10/2009, 18:28
Sabia que si alguien me iba a poder tirar el dato eras vos ;D
Despues lo testeo y te digo que onda ;D
Graciela...

:p

Me olvide de aclarar, está en C# 3.0

EPP
07/10/2009, 19:55
:p

Me olvide de aclarar, está en C# 3.0

:D

Justo iba a preguntar pero bueh no tenia tiempo, ahora aprovecho que no vino la profe de la facu para postear :P