Autor
|
Tema: Dudas desarrollando aplicacion cliente-servidor (Leído 6,244 veces)
|
llAudioslavell
Desconectado
Mensajes: 177
|
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
Mensajes: 156
Envidio la manera de pensar de Caboose
|
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
Mensajes: 1.486
S3C M4NI4C
|
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
|
|
|
|
llAudioslavell
Desconectado
Mensajes: 177
|
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
Mensajes: 156
Envidio la manera de pensar de Caboose
|
Usar VB o C#??? 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. Saludos
|
|
|
En línea
|
|
|
|
llAudioslavell
Desconectado
Mensajes: 177
|
Usar VB o C#??? 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. Saludos Gracias por tu respuesta compañero ^^ !! hare un nuevo post con las dudas que tengo
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Aplicacion cliente-servidor en JAVA
Java
|
rex
|
5
|
21,705
|
28 Septiembre 2004, 12:01 pm
por rex
|
|
|
Opinen de aplicacion cliente/servidor
Programación Visual Basic
|
shadow.darknesses
|
4
|
2,276
|
20 Enero 2007, 02:16 am
por shadow.darknesses
|
|
|
aplicación cliente-servidor
Programación Visual Basic
|
saliaz
|
8
|
3,876
|
5 Abril 2008, 01:39 am
por gulabyte
|
|
|
Aplicacion Cliente-Servidor en VB .Net
.NET (C#, VB.NET, ASP)
|
CGST
|
2
|
5,833
|
14 Julio 2011, 19:19 pm
por Jesuscc29
|
|
|
Facebook está desarrollando una aplicación solo para famosos
Noticias
|
Mister12
|
0
|
1,374
|
15 Agosto 2013, 19:24 pm
por Mister12
|
|