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:
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");
}
}
}
(https://social.msdn.microsoft.com/Forums/getfile/755230)
También conerrores.
Esto si que no me lo esperaba a pesar de es un ejemplo de este enlace (https://msdn.microsoft.com/es-es/library/tst0kwb1%28v=vs.110%29.aspx?f=255&MSPPError=-2147217396).
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.
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 (https://msdn.microsoft.com/es-es/library/tst0kwb1%28v=vs.110%29.aspx?f=255&MSPPError=-2147217396).
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
Hola:
Gracias por responder.
Deja ver si lo paso así en Visual que me gusta más.
(https://social.msdn.microsoft.com/Forums/getfile/755244)
Primero en consola para luego adaptarlo en Visual que es más cómodo.
Luego te cuento como me va.
Hola:
Ahora ejecuta, pero no envía nada.
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.