elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Únete al Grupo Steam elhacker.NET


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP) (Moderador: kub0x)
| | | |-+  Dudas desarrollando aplicacion cliente-servidor
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Dudas desarrollando aplicacion cliente-servidor  (Leído 5,859 veces)
llAudioslavell

Desconectado Desconectado

Mensajes: 177


Ver Perfil
Dudas desarrollando aplicacion cliente-servidor
« en: 5 Enero 2012, 22:39 pm »

He avanzado con mi aplicacion.... trato de hacer un Chat para mi Red Lan y comenzare desde lo mas simple... me he estado guiando de el tutorial "elguille" y de otra guia mas..
hago este post para mencionarles las clases que he estado usando y  lo que entendi de cada una:

Servidor:

TcpListener--------> Espera la conexion del Cliente.
TcpClient----------> Proporciona la Conexion entre el Servidor y el Cliente.
NetworkStream---> Se encarga de enviar mensajes atravez de los sockets.
Thread-------------> He leido sobre esta clase pero la verdad no he llegado a una conclusion.

Cliente:

TCPClient-----------> Este se Conectara al Servidor
NetworkStream-----> Se encarga de enviar mensajes atravez de los sockets.
Thread---------------> .....


CLIENTE:

Para Conectarme:

(en el boton conectar)
- En el TcpClient, especifico la IP y el puerto atravez de su metodo connect.
- Preparo el NetworkStream para enviar mensajes con  su metodo GetStream a la IP que determine por el Puerto que tambien determine en el TcpClient.


Para enviar el mensaje:
(en el boton enviar)

Aqui tengo una gran duda...
Entendi que el mensaje se le  deve convertir de texto a bytes y no se porque razon ...
bueno ya una vez convertido el mensaje en Bytes ( y no se por que x'D) se escribe el mensaje en el NetworkSrtream a travez de su metodo Write


SERVIDOR:

Para Conectarme:

-Instancio la clase Thread y la clase TcpListener
-Especifico al TcpListener la IP y el Puerto.
-TcpClient = TcpListener.AcceptTcpClient 'hago esto para aceptar la peticion del Cliente
-Preparo al TcpClient para enviarle mensaje a travez del metodo GetStream del NetworkStream.


Para enviar el mensaje:

Es lo mismo que en el Cliente...

Para recibir mensajes del Cliente:

-Se convierte el mensaje (que esta en Bytes) a String.
-Se almacena en un Textbox

Esto ha sido todo... y tngo 2 dudas, por ahora, son las siguientes:

-En el cliente, por que habria de convertir el mensaje de String a Bytes ?
-Cual es la funcionalidad del Thread ???


Espero sus opiniones.. quisiera saber si estoy entendiendo bien hasta alli.... algun concejo que me puedan dar las aceptare..... Espero sus Aportes ^^ !!!




En línea

CATBro

Desconectado Desconectado

Mensajes: 156


Envidio la manera de pensar de Caboose


Ver Perfil
Re: Dudas desarrollando aplicacion cliente-servidor
« Respuesta #1 en: 6 Enero 2012, 07:50 am »

El libro que me ayudo y lo encuentras en internet se llama

TCP/IP SOCKETS IN C# PRACTICAL GUIDE FOR PROGRAMMERS

USER CODE C# GUIA TOTAL DEL PROGRAMADOR

O en la libreria

C# COMO PROGRAMAR 
SEGUNDA EDICION
EDITORIAL: PEARSON PRENTICE HALL
AUTORES: HARVEY M. DEITEL Y PAUL J.DEITEL

Yo vi muy complicado usar TCP, y aplique el UDP para hacer broadcast y de esa manera mandar el mensaje a todos los weyes del chat, mas que nada fue un chat room.

Pero contestando tus dudas,
Los Threads(Hilos) permiten crear subprocesos de tu programa principal (yo lo relaciono con el main jajaj) y en cada subproceso correr un metodo de tu programa ya sea el metodo de recibir o escuchar etc... de esa manera no se cuelga o se traba tu aplicacion.
Te recomiendo que leas sobre sockets sincronos y asincronos.

Y porque  hay que convertir a bytes
Bueno la comunicacion entre equipos que estan en la red se lleva a cabo en bits, muy bien no se acerca de eso,pero cuando los conviertes a bytes tienes que decir en que tipo de codificacion(formato) ASCII o UNICODE. Eso es para mandar el texto.

bytes[] sendbuffer = Encoding.ASCII.GetBytes(string)

Para recibir el texto , se hace lo contrario decodificas los bytes en el formato adecuado para mostrar las letras.

string mensaje = Encoding.ASCII.GetString(tu arreglo de bytes en donde reciviste el mensaje)

No se si me explique bien
Si te quedan dudas me avisas
 


En línea

kub0x
Enlightenment Seeker
Moderador
***
Desconectado Desconectado

Mensajes: 1.486


S3C M4NI4C


Ver Perfil
Re: Dudas desarrollando aplicacion cliente-servidor
« Respuesta #2 en: 6 Enero 2012, 16:50 pm »

En la Msdn tienes unas explicaciones sobre sockets en .Net
Tienes información disponible sobre los métodos y clases que debes de utilizar.
Échale un cuatacho. Un saludo
En línea

Viejos siempre viejos,
Ellos tienen el poder,
Y la juventud,
¡En el ataúd! Criaturas Al poder.

Visita mi perfil en ResearchGate

llAudioslavell

Desconectado Desconectado

Mensajes: 177


Ver Perfil
Re: Dudas desarrollando aplicacion cliente-servidor
« Respuesta #3 en: 6 Enero 2012, 16:56 pm »

El libro que me ayudo y lo encuentras en internet se llama

TCP/IP SOCKETS IN C# PRACTICAL GUIDE FOR PROGRAMMERS

USER CODE C# GUIA TOTAL DEL PROGRAMADOR

O en la libreria

C# COMO PROGRAMAR 
SEGUNDA EDICION
EDITORIAL: PEARSON PRENTICE HALL
AUTORES: HARVEY M. DEITEL Y PAUL J.DEITEL

Yo vi muy complicado usar TCP, y aplique el UDP para hacer broadcast y de esa manera mandar el mensaje a todos los weyes del chat, mas que nada fue un chat room.

Pero contestando tus dudas,
Los Threads(Hilos) permiten crear subprocesos de tu programa principal (yo lo relaciono con el main jajaj) y en cada subproceso correr un metodo de tu programa ya sea el metodo de recibir o escuchar etc... de esa manera no se cuelga o se traba tu aplicacion.
Te recomiendo que leas sobre sockets sincronos y asincronos.

Y porque  hay que convertir a bytes
Bueno la comunicacion entre equipos que estan en la red se lleva a cabo en bits, muy bien no se acerca de eso,pero cuando los conviertes a bytes tienes que decir en que tipo de codificacion(formato) ASCII o UNICODE. Eso es para mandar el texto.

bytes[] sendbuffer = Encoding.ASCII.GetBytes(string)

Para recibir el texto , se hace lo contrario decodificas los bytes en el formato adecuado para mostrar las letras.

string mensaje = Encoding.ASCII.GetString(tu arreglo de bytes en donde reciviste el mensaje)

No se si me explique bien
Si te quedan dudas me avisas
 



Gracias por la explicacion hermano ^^ ya entendi la razon del por que convertir el mensaje a bytes y tu otra explicacion me quedo un poco mas claro .....
Sobre los libros de TCP/IP con Sockets ... los buscare pero en VisualBasic.NET y les dare una leida para entender mas....  ahora que estoy buscando algo mas de informacion sobre los Sockets... no pense que fuese tan extenso x'D ... leere mas ^^ .. a y una duda... al hacer esta aplicacion no interesa el Sistema Operativo ??  digo por que el Server lo tengo en mi pc que tiene Win7 y los clientes tienen el WinXP como S.O. ...   otra duda mas ... Que me recomiendas para esta aplicacion .. usar VisualBasic.NET ? o C# ..  y por que ...!

Salu2 ^^ !!!
En línea

CATBro

Desconectado Desconectado

Mensajes: 156


Envidio la manera de pensar de Caboose


Ver Perfil
Re: Dudas desarrollando aplicacion cliente-servidor
« Respuesta #4 en: 6 Enero 2012, 19:40 pm »

Usar VB o C#???  ;D yo solo me dije un dia tengo ganas de aprender C# y pues los hice en C#, nunca me ha dado por aprender VB y pues no se cual te guste mas.Pero supuestamente C# es una mezcla de java,c++,vb etc..pero quien sepa igual que tu estoy aprendiendo progra.
Pues con el sistema operativo yo no eh tenido broncas, solo asegurate que este actualizado el equipo(que tenga el .NET framework ) y puedes correr tu programa escrito en C#. Eso eh entendido yo.  :huh:

Saludos
En línea

llAudioslavell

Desconectado Desconectado

Mensajes: 177


Ver Perfil
Re: Dudas desarrollando aplicacion cliente-servidor
« Respuesta #5 en: 7 Enero 2012, 23:45 pm »

Usar VB o C#???  ;D yo solo me dije un dia tengo ganas de aprender C# y pues los hice en C#, nunca me ha dado por aprender VB y pues no se cual te guste mas.Pero supuestamente C# es una mezcla de java,c++,vb etc..pero quien sepa igual que tu estoy aprendiendo progra.
Pues con el sistema operativo yo no eh tenido broncas, solo asegurate que este actualizado el equipo(que tenga el .NET framework ) y puedes correr tu programa escrito en C#. Eso eh entendido yo.  :huh:

Saludos

Gracias por tu respuesta compañero ^^ !!  hare un nuevo post con las dudas que tengo
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Aplicacion cliente-servidor en JAVA
Java
rex 5 21,377 Último mensaje 28 Septiembre 2004, 12:01 pm
por rex
Opinen de aplicacion cliente/servidor
Programación Visual Basic
shadow.darknesses 4 1,973 Último mensaje 20 Enero 2007, 02:16 am
por shadow.darknesses
aplicación cliente-servidor
Programación Visual Basic
saliaz 8 3,629 Último mensaje 5 Abril 2008, 01:39 am
por gulabyte
Aplicacion Cliente-Servidor en VB .Net
.NET (C#, VB.NET, ASP)
CGST 2 5,607 Último mensaje 14 Julio 2011, 19:19 pm
por Jesuscc29
Facebook está desarrollando una aplicación solo para famosos
Noticias
Mister12 0 1,126 Último mensaje 15 Agosto 2013, 19:24 pm
por Mister12
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines