Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





c# Como conseguir la ip propia

Iniciado por lauri, 04 de Julio de 2006, 01:52:54 PM

« anterior - próximo »

lauri

Pues eso haber si alguien me podia escribir el codigo fuente para conseguir la ip propia en c#

vincent

yo utilizo esto:


/// <summary>
/// Gets the local ip address machine
/// </summary>
/// <returns>Ip address</returns>
public static string GetLocalIpAddress()
{
// Get host name
String strHostName = Dns.GetHostName();

// Find host by name
IPHostEntry iphostentry = Dns.GetHostByName(strHostName);

// Enumerate IP addresses
int nIP = 0;
foreach(IPAddress ipaddress in iphostentry.AddressList)
{
return ipaddress.ToString();
}
return null;
}
Desarrollo en .Net y metodologías http://devnettips.blogspot.com

lauri

muchas  gracias funciona perfectamente

ahora otra duda es que por un lado tengo un proyecto en c# que es el cliente y otro el servidor bien pues para ver si funciona lo que hago es ejecutar el del servidor y saco un mensaje diciendo esperando cliente pues luego ejecuto el de cliente no se si me explico bien pero vamos que lo que quiero es ejecutar una sola vez y que ya lo haga solo y no tenga que estar con uno y luego con otros

se que hay que utlizar hilos, con mutex no se haber si alguien me puede ayudar.
un saludo y gracias

Vicente

Si el cliente y el servidor son dos aplicaciones diferentes, no tiene que ver nada con mutex, hilos o cosas raras... Vamos, no se, eso creo yo, lo mismo no te he entendido.

Simplemente te haces un .bat que llame a los dos .exe o un proyecto que ejecute los otros dos. Un saludo!

Vicente

Diferencial

Eso mismo Vicente. Lo que depende lo que quieras hacer, los hilos te haran falta para el manejo de los clientes, para ir aceptando peticiones. Si fuera un chat deberias de crear un hilo por cada conexión a tu programa servidor.
PARA TENER COSAS QUE NUNCA HAS TENIDO, TENDRÁS QUE HACER COSAS QUE NUNCA HAS HECHO.

lauri

haber ahora tengo otra duda haber si me la podeis solucionar que os veo bastante puesto con el tema

este codigo es como el cliente se conecta al servidor, lo he cogido de internet asique en algunas cosas me pierdo un poco.
donde elijo la ip para conectarme al servidor con la 127.0.0.1 bien pues esa se conecta pero si pongo otra ip 10.34.20. la que sea pues ya se me va a catch y me dice que no se puede conectar al servidor
¿tiene que ver algo en firewall? no se haber si me podeis echar una mano
un saludo y gracias


            string ipcliente=GetLocalIpAddress();
            byte[] data = new byte[1024]; //Cramos un byte[] para recibir el mensaje
            //de bienvenida del servidor
            int sent; //una variable que nos dice cuanto hemos enviado
            IPEndPoint ipep = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 9050);
            //Creamos un IPEndPoint con el ip del servidor y puerto del servidor
            //al que deseamos conectarnos, en este caso lo uso local

            //Creamos el socket igual al del servidor
            Socket server = new Socket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp);

            try
            {
               server.Connect(ipep);//Intentamos conectar el socket
               Console.WriteLine("Conectado con el servidor {0} {1}", ipep.Address,ipep.Port);
               Console.ReadLine();
            }
            catch (SocketException)
            {
               //Si hay excepcion imprimimos error y salimos del programa con return
               Console.WriteLine("No se pudo conectar con el servidor {0}", ipep.Address);
               return;
            }

Diferencial

Modificas la ip del servidor y la del cliente?
PARA TENER COSAS QUE NUNCA HAS TENIDO, TENDRÁS QUE HACER COSAS QUE NUNCA HAS HECHO.

lauri

modifico la ip del servidor al que me quiero conectar, la ip del cliente no la modifico porque en teoria soy yo y quiero que sea esa creo??
porque deberia de modificar la ip del cliente??????

lauri

la  Ip del servidor pongo IpAdress.Any que segun me pone escucha la actividad del cliente en todas las interfaces de red??
no deberia de ser esa??????????????

Vicente

A ver, la IP del servidor es la IP donde esté el servidor. La IP de tu propia máquina es 127.0.0.1 (loopback). Por eso el cliente se conecta a esa IP. Si pones otra IP pues lógicamente no va a funcionar porque no hay un servidor.

Un saludo,

Vicente

lauri

pero y entonces como puedo ver que funciona??
porque luego la informacion que le manda la tengo que guardar en un fichero entonces como no se conecta pues claro no me escribe nada en el fichero
lo que estoy haciendo es en otro equipo ejecuto el programa servidor y pongo su ip como si fuese un servidor y en otro equipo el cliente que se intente conectar a esa ip
no se si eso vale??
yo creo que deberia de funcionar haciendo eso o no???

Diferencial

Cuando te dije si habias modificado la direccion ip del cliente, me referia a la ip donde el cliente se conectaba al server.
PARA TENER COSAS QUE NUNCA HAS TENIDO, TENDRÁS QUE HACER COSAS QUE NUNCA HAS HECHO.

lauri

claro esa si que la modifico pero me dice que nanai no se voy a ver si descubro algo
venga gracias un saludo para todos

lauri

Buenos dias a todos sigo con mi aplicacion cliente servidor y ahora lo que me pasa es que me da esta excepcion cuando ejectuto la sentencia  newsock.shutdown :

Información adicional: No se ha permitido una petición para enviar o recibir datos ya que el socket no está conectado y no se ha proporcionado ninguna dirección, al realizar el envío en un socket de datagramas por medio de una llamada sendto

esto porque puede ser??????????

un saludo y gracias

lauri

Saludos otra vez a todos, ya directamente ni voy a preguntar

Agradeceria si alguien tiene una aplicacion cliente servidor en C# que funcione claro jejej  que me la mande por favor

un saludo laura






Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.