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


Tema destacado: Recopilación Tutoriales y Manuales Hacking, Seguridad, Privacidad, Hardware, etc


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP)
| | | |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo)
| | | | |-+  Corrijanme por favor.
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: Corrijanme por favor.  (Leído 5,706 veces)
mastercss

Desconectado Desconectado

Mensajes: 36


Ver Perfil
Corrijanme por favor.
« en: 25 Enero 2010, 22:43 pm »

Estoy aprendiendo visual basic despues de solo haber tocado programación estructurada y me hago un poko un lio. Me he aventurado a crear un chat cutre cliente servidor con basic xd. El problema es que cuando le doy a conectar en el cliente me dice Error 10048 en tiempo de ejecucion, dirección en uso. Aclaro que ejcuto tanto servidor como cliente en mi ordenador y para conectar utilizo mi ip local. LEs posteo los codes.

Cliente:

Código
  1. Private Sub Command1_Click()
  2. Winsock1.RemoteHost = Text3.Text
  3. Winsock1.Connect
  4. End Sub
  5.  
  6. Private Sub Command2_Click()
  7. Dim enviar As String
  8. enviar = Text2.Text
  9. Winsock1.SendData enviar
  10. End Sub
  11.  
  12. Private Sub Form_Load()
  13.  
  14. End Sub
  15.  
  16. Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
  17. Dim datos As String
  18. Winsock1.GetData datos
  19. Text1.Text = Text1.Text + datos
  20. End Sub
  21.  

Servidor:

Código
  1. Private Sub Command1_Click()
  2. Winsock1.Listen
  3. End Sub
  4.  
  5. Private Sub Command2_Click()
  6. Dim enviar As String
  7. enviar = Text2.Text
  8. Winsock1.SendData enviar
  9. End Sub
  10.  
  11.  
  12. Private Sub Winsock1_ConnectionRequest(ByVal requestID As Long)
  13. Winsock1.Close
  14. Winsock1.Accept requestID
  15. End Sub
  16.  
  17. Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
  18. Dim datos As String
  19. Winsock1.GetData datos
  20. Text1.Text = Text1.Text + datos
  21. End Sub
  22.  

Aclaro que el puerto utilizado es el 888. Esta establecido en el interfaz gráfico de VBA al igual que tambien lo esta el tipo de conexión (TCP/IP).


Salu2 y gracias de antemano.



En línea

ssccaann43 ©


Desconectado Desconectado

Mensajes: 792


¬¬


Ver Perfil
Re: Corrijanme por favor.
« Respuesta #1 en: 25 Enero 2010, 23:33 pm »

Fijate en este ejemplo y aprenderas mucho...:

http://www.recursosvisualbasic.com.ar/htm/utilidades-codigo-fuente/chat.htm


En línea

- Miguel Núñez
Todos tenemos derechos a ser estupidos, pero algunos abusan de ese privilegio...
"I like ^TiFa^"
raul338


Desconectado Desconectado

Mensajes: 2.633


La sonrisa es la mejor forma de afrontar las cosas


Ver Perfil WWW
Re: Corrijanme por favor.
« Respuesta #2 en: 26 Enero 2010, 00:08 am »

No creo que el problema sea de codigo, sino que en los mismos sockets estas usando el mismo puerto  :o y eso no se hace jeje, el socket servidor debe tener un puerto y el cliente otro, fuera de eso, creo que deberia funcionar xD

En línea

ABDERRAMAH


Desconectado Desconectado

Mensajes: 431


en ocasiones uso goto ¬¬


Ver Perfil WWW
Re: Corrijanme por favor.
« Respuesta #3 en: 26 Enero 2010, 00:20 am »

Citar
Private Sub Command1_Click()
Winsock1.RemoteHost = Text3.Text
Winsock1.Connect
End Sub

¿ dónde creas una instancia del objeto winshock1 ? ¿o esque no sale aquí?

En línea

mastercss

Desconectado Desconectado

Mensajes: 36


Ver Perfil
Re: Corrijanme por favor.
« Respuesta #4 en: 26 Enero 2010, 00:28 am »

No sale xd. Esque es lo que pas cuando trabajas con el entorno de basic xd.


Salu2 y gracias
En línea

mastercss

Desconectado Desconectado

Mensajes: 36


Ver Perfil
Re: Corrijanme por favor.
« Respuesta #5 en: 26 Enero 2010, 00:36 am »

Una pregunta como es que no pueden enviar por el mismo socket, me refiero, la salida de datos tiene que ser enviada por un puerto distinto que la entrad de datos???

No entendi bien.

Gracias y salu2
En línea

ABDERRAMAH


Desconectado Desconectado

Mensajes: 431


en ocasiones uso goto ¬¬


Ver Perfil WWW
Re: Corrijanme por favor.
« Respuesta #6 en: 26 Enero 2010, 00:37 am »

Ya, esque en parte es importante... de todas formas una pregunta:

¿Has probado éste objeto servidor en otro programa?
Lo que es el propio objeto, la clase... ¿sabes al 100% que funciona?

Sería bueno ver cómo se generan los eventos de nuevo cliente y data recivido si los tiene... esque pueden ser muchas cosas...

¿puede ser el error algo parecido a esto?:

llamada insegura desde diferente tread. Se ha hecho referencia a un objeto a través de un tread que no fue creado por este...

Mas o menos, no recuerdo cómo es, pero vaya....

¿O no se controlo soket exception?
« Última modificación: 26 Enero 2010, 00:39 am por ABDERRAMAH » En línea

raul338


Desconectado Desconectado

Mensajes: 2.633


La sonrisa es la mejor forma de afrontar las cosas


Ver Perfil WWW
Re: Corrijanme por favor.
« Respuesta #7 en: 26 Enero 2010, 00:45 am »

Una aplicacion cliente / servidor, debe tener sockets configurados para ser cliente o ser servidor. Una vez que un socket escuche un puerto (servidor) no puede otro socket usar ese mismo puerto. Y un socket que se conecta un puerto en especial debe conectarse desde un puerto (o sea, desde TU puerto hacia SU puerto)

Esto te puede explicar un poco mas ;)

En línea

mastercss

Desconectado Desconectado

Mensajes: 36


Ver Perfil
Re: Corrijanme por favor.
« Respuesta #8 en: 26 Enero 2010, 00:51 am »

El caso eske el codigo fuente esta cambiado al manual que vi pero basicamente es lo mismo. He podido observar por otros codes que he visto que el problema se encuentra en conection request. Resulta que en conection request en otros codecs establecen de nuevo winsock1.localport en 0 y vulven a aceptar la conexion entrante no si si sera este el error. La verdad esk me toy liando un poko.


Salu2
En línea

mastercss

Desconectado Desconectado

Mensajes: 36


Ver Perfil
Re: Corrijanme por favor.
« Respuesta #9 en: 26 Enero 2010, 00:58 am »

Haber si entiendo, no puedo escuchar por el mismo puerto por el que envio datos?Un poko raro no???xd
NO me entero de na
Si no es mucha molestia podrias señalar en el code lo que dices que esta mal???plz seria de gran ayuda


salu2

P.D:Para el que tenga dudas e esto me base pa hacer el code:

http://www.elguruprogramador.com.ar/articulos/aplicaciones-cliente-servidor-en-visual-basic-utilizando-el-control-winsock.htm
« Última modificación: 26 Enero 2010, 01:32 am por mastercss » En línea

Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines