¡Hola, Invitado!


Patrocinantes


Síguenos en Facebook


Síguenos en Twitter

Compartir este tema:
[Código] Chat V2.0[BETA][C#]
Arobavx Sin conexión
Miembro
***

Mensajes: 7
Registro en: Feb 2011
Gracias dados: 0
Gracias recibidos: 0
Mensaje: #1
Chat V2.0[BETA][C#]
  • Compartir en Delicious
  • Compartir en Digg
  • Compartir en Linkedin
  • Compartir en MySpace
  • Compartir en Technorati
  • Compartir en Tuenti
Servidor
Lenguaje CSHARP
using System;
using System.Net.Sockets;
using System.Collections;
public class Servidor
{
    public static ArrayList ListaUsuarios = new ArrayList();
    public static int num=0;
    public static ArrayList MensajesRecibidos;
 
    public static void SumarUsuarios(String mensaje) {
        num = 0;
        foreach (String s in ListaUsuarios)
        {
            if (s.Equals(parseMsgDELServ(mensaje)))
            {
                num++;
            }
        }
        if (num == 0)
        {
            Console.WriteLine(parseMsgDELServ(mensaje) + " Acaba de Ingresar al CHAT.");
            ListaUsuarios.Add(parseMsgDELServ(mensaje));
        } 
    }
 
    public static String parseMsgDELServ(String mensaje)
    {
        String nom = null;
        for (int i = 0; i < mensaje.Length; i++)
        {
 
            if (mensaje[i].Equals('<'))
            {
                i++;
                while (mensaje[i] != '>')
                {
                    nom += mensaje[i];
                    i++;
                }
                    return nom;
            }
        }
        return "Ocurrio un problema al Extraer Nombre de usuario >> " + mensaje;
    }
 
    public static String Get_Msg(String mnsg) {
        return mnsg.Replace("<"+parseMsgDELServ(mnsg)+">", "");
    }
 
    public static void Main()
    {
        Console.Title = "CHAT v1.0(Servidor)";
        Console.WriteLine("::::::SERVIDOR INICIADO:::::");
        Console.WriteLine(":::______( O.O )________::::");
        Console.WriteLine("");
 
        TcpListener tcpListener = new TcpListener(10);
        tcpListener.Start();
        Socket socketForClient;
        String theString;
        NetworkStream networkStream;
        NetworkStream InetRefreshMsg; 
        System.IO.StreamWriter streamWriter;
        System.IO.StreamReader streamReader;
        MensajesRecibidos = new ArrayList();
        while (true)
        {
            socketForClient = tcpListener.AcceptSocket();
            networkStream = new NetworkStream(socketForClient);
            streamWriter = new System.IO.StreamWriter(networkStream);
            streamReader = new System.IO.StreamReader(networkStream);
            theString = streamReader.ReadLine();
            if (Get_Msg(theString) == "update")
            {
                streamWriter.WriteLine(MensajesRecibidos.Count);//manda cantidad de usuarios conectados
                streamWriter.Flush();
                for (int i = 0; i < MensajesRecibidos.Count; i++)
                {
                    streamWriter.WriteLine(MensajesRecibidos[i]); //cambiar por mensajes
                    streamWriter.Flush();
                }
                if (MensajesRecibidos.Count > 20)
                {
                    MensajesRecibidos = new ArrayList();
                }
            }
            else if (Get_Msg(theString) == "users?")
            {
                streamWriter.WriteLine(ListaUsuarios.Count);//manda cantidad de usuarios 
                streamWriter.Flush();
                for (int i = 0; i < ListaUsuarios.Count; i++)
                {
                    streamWriter.WriteLine(ListaUsuarios[i]); //Manda cada usuario
                    streamWriter.Flush();
                }
 
            } else {
                MensajesRecibidos.Add(theString);
                SumarUsuarios(theString);
                streamWriter.WriteLine(MensajesRecibidos.Count);//manda cantidad de usuarios conectados
                streamWriter.Flush();
                for (int i = 0; i < MensajesRecibidos.Count; i++)
                {
                    streamWriter.WriteLine(MensajesRecibidos[i]); //cambiar por mensajes
                    streamWriter.Flush();
                }
                if (MensajesRecibidos.Count > 20)
                {
                    MensajesRecibidos = new ArrayList();
                }
            }
 
        }
        streamReader.Close();
        networkStream.Close();
        streamWriter.Close();
        socketForClient.Close();   
        Console.WriteLine("Exiting...");
        Console.ReadKey(true);
    }
}



Cliente
Lenguaje CSHARP
using System;
using System.Net.Sockets;
using System.Collections;
public class Servidor
{
    public static ArrayList ListaUsuarios = new ArrayList();
    public static int num=0;
    public static ArrayList MensajesRecibidos;
 
    public static void SumarUsuarios(String mensaje) {
        num = 0;
        foreach (String s in ListaUsuarios)
        {
            if (s.Equals(parseMsgDELServ(mensaje)))
            {
                num++;
            }
        }
        if (num == 0)
        {
            Console.WriteLine(parseMsgDELServ(mensaje) + " Acaba de Ingresar al CHAT.");
            ListaUsuarios.Add(parseMsgDELServ(mensaje));
        } 
    }
 
    public static String parseMsgDELServ(String mensaje)
    {
        String nom = null;
        for (int i = 0; i < mensaje.Length; i++)
        {
 
            if (mensaje[i].Equals('<'))
            {
                i++;
                while (mensaje[i] != '>')
                {
                    nom += mensaje[i];
                    i++;
                }
                    return nom;
            }
        }
        return "Ocurrio un problema al Extraer Nombre de usuario >> " + mensaje;
    }
 
    public static String Get_Msg(String mnsg) {
        return mnsg.Replace("<"+parseMsgDELServ(mnsg)+">", "");
    }
 
    public static void Main()
    {
        Console.Title = "CHAT v1.0(Servidor)";
        Console.WriteLine("::::::SERVIDOR INICIADO:::::");
        Console.WriteLine(":::______( O.O )________::::");
        Console.WriteLine("");
 
        TcpListener tcpListener = new TcpListener(10);
        tcpListener.Start();
        Socket socketForClient;
        String theString;
        NetworkStream networkStream;
        NetworkStream InetRefreshMsg; 
        System.IO.StreamWriter streamWriter;
        System.IO.StreamReader streamReader;
        MensajesRecibidos = new ArrayList();
        while (true)
        {
            socketForClient = tcpListener.AcceptSocket();
            networkStream = new NetworkStream(socketForClient);
            streamWriter = new System.IO.StreamWriter(networkStream);
            streamReader = new System.IO.StreamReader(networkStream);
            theString = streamReader.ReadLine();
            if (Get_Msg(theString) == "update")
            {
                streamWriter.WriteLine(MensajesRecibidos.Count);//manda cantidad de usuarios conectados
                streamWriter.Flush();
                for (int i = 0; i < MensajesRecibidos.Count; i++)
                {
                    streamWriter.WriteLine(MensajesRecibidos[i]); //cambiar por mensajes
                    streamWriter.Flush();
                }
                if (MensajesRecibidos.Count > 20)
                {
                    MensajesRecibidos = new ArrayList();
                }
            }
            else if (Get_Msg(theString) == "users?")
            {
                streamWriter.WriteLine(ListaUsuarios.Count);//manda cantidad de usuarios 
                streamWriter.Flush();
                for (int i = 0; i < ListaUsuarios.Count; i++)
                {
                    streamWriter.WriteLine(ListaUsuarios[i]); //Manda cada usuario
                    streamWriter.Flush();
                }
 
            } else {
                MensajesRecibidos.Add(theString);
                SumarUsuarios(theString);
                streamWriter.WriteLine(MensajesRecibidos.Count);//manda cantidad de usuarios conectados
                streamWriter.Flush();
                for (int i = 0; i < MensajesRecibidos.Count; i++)
                {
                    streamWriter.WriteLine(MensajesRecibidos[i]); //cambiar por mensajes
                    streamWriter.Flush();
                }
                if (MensajesRecibidos.Count > 20)
                {
                    MensajesRecibidos = new ArrayList();
                }
            }
 
        }
        streamReader.Close();
        networkStream.Close();
        streamWriter.Close();
        socketForClient.Close();   
        Console.WriteLine("Exiting...");
        Console.ReadKey(true);
    }
}

[Imagen: normal.png]
(Este mensaje fue modificado por última vez en: 04-05-2011 12:49 PM por -Gosw-.)
04-05-2011 12:38 PM
Buscar Citar
bad_robot Sin conexión
Miembro
***

Mensajes: 19
Registro en: Nov 2010
Gracias dados: 2
Gracias recibidos: 0
Mensaje: #2
RE: Chat V2.0[BETA][C#]
  • Compartir en Delicious
  • Compartir en Digg
  • Compartir en Linkedin
  • Compartir en MySpace
  • Compartir en Technorati
  • Compartir en Tuenti
Una pregunta , no he mirado el archivo adjunto pero quisiera saber como se esta trabajando? c# pero aplicativo windows forms?.

Saludos
07-12-2011 07:03 AM
Buscar Citar




Usuario(s) navegando en este tema: 1 invitado(s)