[ Foro de C# ]
Hola que tal a todos, soy nuevo en este foro y pos me recomendaron usarlo ya que es muy fácil de usar es mas orientado a los que estamos aprendiendo a programar.
Ok, mi duda es la siguiente.
Estoy haciendo un juego STOP (país, fruta, color, animal) ya tengo el cliente/servidor y puedo conectar los clientes que sean al servidor, la cosa es que ocupo enviar con el cliente los nombres juntos (correspondientes a pais, fruta, color, animal) a la misma ves por el socket para que el servidor los reciba y los compare con los datos que hay en la BD mysql, pero la dura por el momento es, cómo enviar todos los datos a la ves y que el servidor los reciba igual para luego comparar cada uno con los de la base de datos. Por el momento ocupo saber como hago ese proceso en C#. Gracias
En mis apuntes, en el apartado 12.6 de la versión PDF, tienes ejemplos básicos de cómo conectar a otro equipo mediante sockets y a un servidor web. Te incluyo aquí el ejemplo de sockets, por si te puede servir como punto de partida.
// Ejemplo de envio y recepción de frases a través de la red
using System;
using System.IO; // Para Stream
using System.Text; // Para Encoding
using System.Net; // Para Dns, IPAddress
using System.Net.Sockets; // Para NetworkStream
public class EjemploSockets
{
static string direccionPrueba = "localhost";
static int puertoPrueba = 2112;
private static void enviar(string direccion, int puerto, string frase)
{
TcpClient cliente = new TcpClient(direccion, puerto);
NetworkStream conexion = cliente.GetStream();
byte[] secuenciaLetras = Encoding.ASCII.GetBytes( frase );
conexion.Write(secuenciaLetras, 0, secuenciaLetras.Length);
conexion.Close();
cliente.Close();
}
private static string esperar(string direccion, int puerto)
{
// Tratamos de hallar la primera IP que corresponde
// a una dirección como "localhost"
IPAddress direccionIP = Dns.Resolve(direccion).AddressList[0];
// Comienza la espera de información
TcpListener listener = new TcpListener(direccionIP,puerto);
listener.Start();
TcpClient cliente = listener.AcceptTcpClient();
NetworkStream conexion = cliente.GetStream();
StreamReader lector = new StreamReader(conexion);
string frase = lector.ReadToEnd();
cliente.Close();
listener.Stop();
return frase;
}
public static void Main()
{
Console.WriteLine("Pulse 1 para recibir o 2 para enviar");
string respuesta = Console.ReadLine();
if (respuesta == "2") // Enviar
{
Console.Write("Enviando... ");
enviar( direccionPrueba, puertoPrueba, "Prueba de texto");
Console.WriteLine("Enviado");
}
else // Recibir
{
Console.WriteLine("Esperando... ");
Console.WriteLine( esperar(direccionPrueba, puertoPrueba) );
Console.WriteLine("Recibido");
}
}
}
que tal Nacho, gracias por su pronta respuesta, tu ejemplo esta muy claro, quisiera saber como accedo a tus apuntes. Me interesa saber todo sobre sockets.
Mis apuntes están en versión web resumida en estas mismas páginas, y en versión PDF más detallada en mi web:
http://nachocabanes.com/csharp/
Le agradezco mucho la ayuda.
(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)