Chat con Visual C# por Internet

Iniciado por Meta, 7 Diciembre 2015, 12:38 PM

0 Miembros y 1 Visitante están viendo este tema.

Meta

Código (csharp) [Seleccionar]
Hola:

Estoy haciendo pruebas con los ejemplos en modo consola bajo Visual Studio Community 2015. Me da error y no encuentro la sulución, es más no entiendo lo que me quiere decir.

Modo cliente:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

using System.Net; // No olvidar.
using System.Net.Sockets; // No olvidar.

namespace Chat_Cliente_UDP
{
    class Program
    {
        private const int listenPort = 11000;

        static void Main(string[] args)
        {
            bool done = false;

            UdpClient listener = new UdpClient(listenPort);
            IPEndPoint groupEP = new IPEndPoint(IPAddress.Any, listenPort);

            try
            {
                while (!done)
                {
                    Console.WriteLine("A la espera de la emisión.");
                    byte[] bytes = listener.Receive(ref groupEP);

                    Console.WriteLine("Recibido transmitido desde {0} :\n {1}\n",
                        groupEP.ToString(),
                        Encoding.ASCII.GetString(bytes, 0, bytes.Length));
                }

            }
            catch (Exception e)
            {
                Console.WriteLine(e.ToString());
            }
            finally
            {
                listener.Close();
            }
        }

        public static int Main()
        {
            Main();

            return 0;
        }
    }
   
}



Gravedad    Código    Descripción    Proyecto    Archivo    Línea
Error    CS0017    El programa tiene más de un punto de entrada definido. Compile con /main para especificar el tipo que contiene el punto de entrada.    Chat_Cliente_UDP    c:\users\usuario\documents\visual studio 2015\Projects\Chat_Cliente_UDP\Chat_Cliente_UDP\Program.cs    16


Modo servidor:

Código (csharp) [Seleccionar]
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

using System.Net; // No olvidar.
using System.Net.Sockets; // No olvidar.

namespace Chat_Servidor_UDP
{
    class Program
    {
        static void Main(string[] args)
        {
            Socket s = new Socket(AddressFamily.InterNetwork, SocketType.Dgram,
            ProtocolType.Udp);

            IPAddress broadcast = IPAddress.Parse("127.0.0.1");

            byte[] sendbuf = Encoding.ASCII.GetBytes(args[0]);
            IPEndPoint ep = new IPEndPoint(broadcast, 11000);

            s.SendTo(sendbuf, ep);

            Console.WriteLine("Mensaje enviado a la dirección de difusión");
        }
    }
}




También conerrores.

Esto si que no me lo esperaba a pesar de es un ejemplo de este enlace.

Espero que me ayuden como solucionarlo. Por ahora voy a probarlo en modo local a mismo, luego con otro router lo comunico desde este ordenador a uno portatil en red que tengo en casa.

Espero resolver este problema indicado ahora.

Gracias por las respuestas amigos. ;)

Sigo adelante.
Tutoriales Electrónica y PIC: http://electronica-pic.blogspot.com/

Eleкtro

#1
Cita de: Meta en  7 Diciembre 2015, 12:38 PMEsto si que no me lo esperaba a pesar de es un ejemplo de este enlace.

La excepción de tipo IndexOutOfRange se explica por si sola; el ejemplo que expone MSDN es una aplicación de consola que recibe un argumento,
el problema es que la has intentado iniciar sin más, no le has pasado ningún argumento por lo tanto el índice 0 está fuera del rango de elementos del array args.

¿Solución?, establece los argumentos command-line en tiempo de diseño, o utiliza la app mediante la consola (fuera de Visual Studio, en la CMD) pasándole un argumento.

PD: A ver si esta vez me haces caso a lo que te aconsejo.

Saludos








Meta

Hola:

Gracias por responder.

Deja ver si lo paso así en Visual que me gusta más.



Primero en consola para luego adaptarlo en Visual que es más cómodo.

Luego te cuento como me va.
Tutoriales Electrónica y PIC: http://electronica-pic.blogspot.com/

Meta

Hola:

Ahora ejecuta, pero no envía nada.

Código (csharp) [Seleccionar]
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

using System.Net; // No olvidar.
using System.Net.Sockets; // No olvidar.

namespace Chat_Form_Cliente
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();

            Socket s = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
            IPAddress broadcast = IPAddress.Parse(textBox_tu_IP.Text.ToString());

            //byte[] sendbuf = Encoding.ASCII.GetBytes(args[0]);
            byte[] sendbuf = Encoding.ASCII.GetBytes(textBox_Enviar.Text.ToString());
            IPEndPoint ep = new IPEndPoint(broadcast, Int32.Parse(textBox_Puerto.Text));

            s.SendTo(sendbuf, ep);

            richTextBox_Mensajes_general.Text = "Mensaje enviado a la dirección de difusión.";
        }
    }
}


¿Dónde puede estar el problema?

Saludos.
Tutoriales Electrónica y PIC: http://electronica-pic.blogspot.com/