|
|
Mensaje: #1
Chat V2.0[BETA][C#]
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);
}
}
(Este mensaje fue modificado por última vez en: 04-05-2011 12:49 PM por -Gosw-.)
|
|
| 04-05-2011 12:38 PM |
|
|
|
Mensaje: #2
RE: Chat V2.0[BETA][C#]
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 |
|