| Ver tema anterior :: Ver siguiente tema |
| Autor |
Mensaje |
banker25 Conociendo Foroz


Registrado: 09 Ene 2008
Mensajes: 45
|
Publicado: Lun Mar 03, 2008 9:43 pm Título del mensaje: Visual Basic 0.6 |
|
|
| Hola amigos, quiero saber un programa en visual basic quisiera crear un servidor y cliente , ya que he visto algunos y no combencen y simpre me pregunte como lo podria hacer, ......Grasias |
|
| Volver arriba |
|
 |
firefenix Forero


Registrado: 06 Nov 2007
Mensajes: 164
|
Publicado: Lun Mar 03, 2008 10:17 pm Título del mensaje: |
|
|
Bueno, he leído unos pocos de mensajes tuyos. Decirte 2 cosas:
1.- Luego te busco el código para poder hacer una conexión en VB, aunque el que te pasaré lo he usado en la versión 2005, no en la 6.0 (no es 0.6, sino al revés).
2.- A ver si te pones una imagen más pequeña y dejas esa para la firma, que me desconfiguras todos los post. Es sólo una sugerencia  _________________
|
|
| Volver arriba |
|
 |
banker25 Conociendo Foroz


Registrado: 09 Ene 2008
Mensajes: 45
|
Publicado: Lun Mar 03, 2008 10:38 pm Título del mensaje: |
|
|
hola que tal firefenix ya acomode la imagen y disculpa por lo de la imagen no queria estorciona el foro _________________ Bill Gates ya vas ta Con tu Software que para eso ya Existe"" Ubuntu 8.04"" |
|
| Volver arriba |
|
 |
firefenix Forero


Registrado: 06 Nov 2007
Mensajes: 164
|
Publicado: Mar Mar 04, 2008 12:08 am Título del mensaje: |
|
|
Bien, decirte que me encanta tu nueva imagen. Matrix es una de mis películas preferidas, a pesar de que algunos no la entiendan.
Éste es el código que pides. Como ya te dije, no sé si funcionará en la versión 6.0, pero para la 2005 la he comprobado y funciona:
| Código: |
• Para realizar conexiones salientes (lo típico en un “cliente”):
Imports System.Net.Sockets
Dim Cliente As New TcpClient
Dim Conexion As NetworkStream
Dim TextoAEnviar As String
Dim DatosAEnviar() As Byte
Try
' trata de conectar con la IP y el puerto indicado
Cliente.Connect("127.0.0.1", 23456)
' crea el "enlace" que representará a la conexión en el código
Conexion = Cliente.GetStream()
' envía datos a la conexión
TextoAEnviar = "Texto a enviar"
' aunque previamente hay que convertilo a bytes
DatosAEnviar = System.Text.Encoding.UTF8.GetBytes(TextoAEnviar)
Conexion.Write(DatosAEnviar, 0, DatosAEnviar.Length)
' un cliente también puede recibir datos
' XXX es el máximo número de bytes que lee de una "tacada" de la red
' (si llegasen más bytes, debería "leerse" de nuevo para recibirlos)
' Dim DatosRecibidos(XXX) As Byte
' Dim TextoRecibido As String
' Dim NumeroBytesRecibidos As Integer
' recibe datos de la conexión
' NumeroBytesRecibidos = Conexion.Read(DatosRecibidos, 0, DatosRecibidos.Length)
' en tanto no reciba datos, espera en la línea anterior
' una vez recibidos los datos hay que convertilos a texto
' TextoRecibido = System.Text.Encoding.UTF8.GetString(DatosRecibidos, _
' 0, NumeroBytesRecibidos)
' cierra la conexión
Conexion.Close()
Catch OcurrioUnError As Exception
MessageBox.Show(OcurrioUnError.Message, "Error", _
MessageBoxButtons.OK, MessageBoxIcon.Error)
End Try
• Para aceptar conexiones entrantes (lo típico en un “servidor”):
Imports System.Net, System.Net.Sockets
Dim DireccionIP As IPAddress = IPAddress.Parse("127.0.0.1")
Dim Puerto As Integer = 23456
Dim Servidor As New TcpListener(DireccionIP, Puerto)
Dim UnCliente As TcpClient
Dim Conexion As NetworkStream
' XXX es el máximo número de bytes que lee de una "tacada" de la red
' (si llegasen más bytes, habría que "leer" de nuevo para recibirlos)
Dim DatosRecibidos(XXX) As Byte
Dim TextoRecibido As String
Dim NumeroBytesRecibidos As Integer
Try
' abre la direccion IP y el puerto antes indicado
Servidor.Start()
' espera la conexión de algún cliente
UnCliente = Servidor.AcceptTcpClient()
' en tanto no se conecte un cliente, espera en la línea anterior
' crea el "enlace" que representa a la conexión en el código
Conexion = UnCliente.GetStream()
' lee los datos que le envíe el cliente
NumeroBytesRecibidos = Conexion.Read(DatosRecibidos, 0, _
DatosRecibidos.Length)
' en tanto no reciba datos, espera en la línea anterior
While NumeroBytesRecibidos <> 0 ' si recibe algo, sigue por aquí
TextoRecibido = System.Text.Encoding.UTF8.GetString(DatosRecibidos, _
0, NumeroBytesRecibidos)
' a partir de aquí se procesaría la información recibida
' un servidor también puede enviar datos
' Dim TextoAEnviar As String
' Dim DatosAEnviar() As Byte
' envía datos a la conexión
' TextoAEnviar = "Recepción correcta"
' aunque previamente hay que convertilos a bytes
' DatosAEnviar = System.Text.Encoding.UTF8.GetBytes(TextoAEnviar)
' Conexion.Write(DatosAEnviar, 0, DatosAEnviar.Length)
' lee de nuevo (y continua mientras el cliente no cierre la conexión)
NumeroBytesRecibidos = Conexion.Read(DatosRecibidos, 0, _
DatosRecibidos.Length)
' en tanto no reciba datos, espera en la línea anterior
End While
' termina la escucha una vez que el cliente cierra la conexión
Servidor.Stop()
Catch OcurrioUnError As Exception
MessageBox.Show(OcurrioUnError.Message, "Error", _
MessageBoxButtons.OK, MessageBoxIcon.Error)
End Try
|
Bueno, estas funciones son bloqueantes para el sistema, por lo que tendrás que añadirle los correspondientes "Application.DoEvents()" para que el sistema pueda respirar antes de bloquearse.
Suerte para tu propósito. Espero que te sirva. _________________
|
|
| Volver arriba |
|
 |
banker25 Conociendo Foroz


Registrado: 09 Ene 2008
Mensajes: 45
|
Publicado: Mar Mar 04, 2008 7:44 pm Título del mensaje: |
|
|
gracias a mi amigo Firefenix esta muy bien el post que publicaste me viera gustado que post mas cosas en este tema como con imagenes y ejemplos para aprender mas de como hacer el servidor y cliente. _________________ Bill Gates ya vas ta Con tu Software que para eso ya Existe"" Ubuntu 8.04"" |
|
| Volver arriba |
|
 |
firefenix Forero


Registrado: 06 Nov 2007
Mensajes: 164
|
Publicado: Mar Mar 04, 2008 8:27 pm Título del mensaje: |
|
|
Bueno, la cosa es bien sencilla. Serían 2 proyectos totalmente distintos, uno para el cliente y otro para el servidor, por lo que, dependiendo de para qué lo quieras podría poner unas imágenes u otras. _________________
|
|
| Volver arriba |
|
 |
Smart User destacando


Registrado: 02 Oct 2007
Mensajes: 318
Ubicación: Super Colombia!
|
Publicado: Mie Mar 05, 2008 12:00 am Título del mensaje: |
|
|
Hola banker25, te digo si quieres utilizar Visual.NET osea la nueva generacion de VB... necesitas utilizar Sockets que es el codigo que te puso firefenix...
Hay te dejo un link donde encontraras detalladamente y con imágenes de un servidor y un cliente....
http://www.elguille.info/colabora/puntoNET/PabloTilli_SocketsVBNET.htm
Saludos.. _________________
Copiar ideas de uno es plagio, copiar ideas de muchos es la investigación...!
Foro donde te respondere tus dudas de programación aqui! |
|
| Volver arriba |
|
 |
DploiD Yo soy el foro


Registrado: 26 Ene 2006
Mensajes: 4385
Ubicación: Argentina
|
Publicado: Sab Mar 08, 2008 8:29 pm Título del mensaje: |
|
|
Eso es Vb.NET.
En VB 6.0 (no es 0.6) no funciona, tendrías que usar winsock.
Es un control OCX, lo agregas al form tanto en el servidor como en el cliente.
En los dos colocas el mismo puerto, el Client envía info a ese puerto, y el server escucha ese puerto, mediante Listen.
Hay muchisimos ejemplos del control Winsock, es muy sencillo de usar, si buscas en Google vas a encontrar mucha info interesante... Ahora que sabes mas o menos como funciona la cosa te va a resultar más facil encontrar lo que queres.
Te pregunto, ¿Para que lo necesitas?
Digo, capaz que te podemos ayudar en algo más.
Un saludo. _________________ Avisame del spam
O postealo acá
|
|
| Volver arriba |
|
 |
|
|
|