Título: Winsock Ayuda plz! Publicado por: n3ts4mura1 en 26 Julio 2006, 07:11 am tengo esto:
*************** Cliente: 3 cajas te texto (3 cajas de texto vacias) 2 botones (command1=Conectar command2=Enviar) 1 winsock(puerto local 888) Codigo; Private Sub Command1_Click() Winsock1.RemoteHost = Text3.Text Winsock1.Connect End Sub Private Sub Command2_Click() Dim enviar As String enviar = Text2.Text Winsock1.SendData enviar End Sub Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long) Dim datos As String Winsock1.GetData datos Text1.Text = Text1.Text + datos End Sub Servidor: ******** 2 cajas de texto(cajas de texto vacias) 2 botones(command1=Escuchar command2=Enviar) 1 winsock(puerto local 888) codigo: *********** Private Sub Command1_Click() Winsock1.Listen End Sub Private Sub Command2_Click() Dim enviar As String enviar = Text2.Text Winsock1.SendData enviar End Sub Private Sub Winsock1_ConnectionRequest(ByVal requestID As Long) Winsock1.Close Winsock1.Accept requestID End Sub Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long) Dim datos As String Winsock1.GetData datos Text1.Text = Text1.Text + datos End Sub El problema: *********************** dejo al servidor a la escucha y todo bien hago un netstat -an en ms-dos y veo el puerto a la escucha. pero cuando trato de conectarme con el cliente al servidor al colocar la ip y darle conectar me sale el siguiente error: Error '10048' en tiempo de ejecucion : Direccion en uso y se cae el programa agradeceria su ayuda muchas gracias =).. Título: Re: Winsock Ayuda plz! Publicado por: whiskises en 26 Julio 2006, 08:07 am No veo que hayas establecido el remoteport en el cliente, el puerto del servidor al cual se va a conectar.
Como creo que lo ejecutas en el mismo pc ambos:Lanzas el servidor y escucha en 888, luego lanzas el cliente y le quieres obligar a salir por 888 (LocalPort)tambien y ya esta en uso. prueba esto a ver que tal te va. Saludos Título: Re: Winsock Ayuda plz! Publicado por: n3ts4mura1 en 26 Julio 2006, 08:49 am Si gracias hay si funciono otra preguntita:
como puedo hacer para que cuando con el cliente se conecte con el servidor me diga un mesaje conectado o algo haci pero si realemente esta conectado. Título: Re: Winsock Ayuda plz! Publicado por: _Sergi_ en 26 Julio 2006, 12:50 pm Por favor, postea el código utilizando la etiqueta code (#). En un principio es para que podamos leerlo mejor, pero además debes saber que es obligatorio, así lo dicen las normas del foro :)
Citar como puedo hacer para que cuando con el cliente se conecte con el servidor me diga un mesaje conectado o algo haci pero si realemente esta conectado. Cuando estás conectado, el estado de Winsock es 7 (es decir, WS.State = 7). Por ende, siempre que el estado sea distinto de 7 no estarás conectado. Si quieres que un mensaje te avise, haz un timer que compruebe el estado cada cierto tiempo. Sería algo así Código: Private Sub Timer1_Timer() Y si quisieras que te avisara al desconectar, haces otro timer, esta vez desactivado en principio. Código: Private Sub Timer2_Timer() Un saludo Título: Re: Winsock Ayuda plz! Publicado por: n3ts4mura1 en 27 Julio 2006, 00:59 am Gracias por tu ayuda _Sergi_ .
Bueno otra preguntita aprovechando que andan de buenas al presionar en conectar esta todo bien pero si vuelvo a presionar el programa se cae hay alguna forma para que no se cuelgue,lo mismo pasa al escuchar.Bueno adios amigos Título: Re: Winsock Ayuda plz! Publicado por: ジ en 27 Julio 2006, 01:34 am On Error Resume Next ( en caso de error sigue en lo siguiente ) (algo asi más o menos quiere decir) ( siguiente linea de codigo )
ese error te lo bota vb, porque? pues porque ya esta escuchando o conectando el winsock, esta en state = 6 o = 2 y le vuelves a picar en el boton...ya estas haciendo eso..y se produce ese error..para que no pase eso pon esa linea de code...antes de si es un commando x ejemplo: Private Sub Command1_Click() On error resume next salu2. --------------------------------------------------------*.*------------ MODIFICADO: mejor que un msgbox que te diga si estas conectado o no podrias hacer esto, se ve mejor y queda mejor en tú aplicación. necesitas un control timer, un winsock y 1 label nombre del timer: tim nombre del label: lblstate nombre del winsock: sck codigos: Código: Private Sub tim_Timer() al timer ponle de intervalo 1 en sus propiedades, o en el evento load del form tim.Interval = 1 salu2. espero que te sirva el codigo NUEVA MODIFICACIÖN: Citar -------------------------------------------------------------------------------- hahahaha otra pregunta. Y existe alguna forma para tener que agregar la MSWINSCK.OCX porque cuando lo paso a otro pc el server tengo que andar con la MSWINSCK.OCX pa toos laos bueno si alguien me dice como hacerlo se lo agradeceria adios. si usando la api de winsock o agregando 2 modulos que son el modcsoketmaster.bas y .cls en el post de xenon de troyanos y virus..esta, buscalo,salu2. Título: Re: Winsock Ayuda plz! Publicado por: n3ts4mura1 en 27 Julio 2006, 01:50 am Gracias =).
Título: Re: Winsock Ayuda plz! Publicado por: n3ts4mura1 en 27 Julio 2006, 01:52 am hahahaha otra pregunta.
Y existe alguna forma para tener que agregar la MSWINSCK.OCX porque cuando lo paso a otro pc el server tengo que andar con la MSWINSCK.OCX pa toos laos bueno si alguien me dice como hacerlo se lo agradeceria adios. Título: Re: Winsock Ayuda plz! Publicado por: n3ts4mura1 en 27 Julio 2006, 02:15 am .....::::G.T.S::::.....
sabes que tengo este codigo que puse en timer le di el intervalo de valor 1 y dentro del timer del cliente puse esto: a y el label que me muestra el resultado es el 4 #codigo Private Sub Timer1_Timer() If Winsock1.State = winsock1Closed Then Label4.Caption = "-Desconectado-" End If If Winsock1.State = winsock1Connected Then Label4.Caption = "-Conectado-" End If If Winsock1.State = winsock1Connecting Then Label4.Caption = "-Conectando-" End If End Sub #el problema es que siempre queda en conectando. ayuda plz Título: Re: Winsock Ayuda plz! Publicado por: ジ en 27 Julio 2006, 02:40 am Pon todo el codigo por partes como lo tienes ;)
Título: Re: Winsock Ayuda plz! Publicado por: n3ts4mura1 en 27 Julio 2006, 04:13 am #esto es todo mi codigo del cliente
Private Sub Command1_Click() On Error Resume Next Winsock1.RemoteHost = Text3.Text Winsock1.Connect End Sub Private Sub Command2_Click() Dim enviar As String enviar = Text2.Text Winsock1.SendData enviar Text1.Text = "" Text2.Text = "" End Sub Private Sub Command3_Click() Winsock1.Close End End Sub Private Sub Label4_Click() End Sub Private Sub Timer1_Timer() If Winsock1.State = winsock1Closed Then Label4.Caption = "-Desconectado-" End If If Winsock1.State = winsock1Connected Then Label4.Caption = "-Conectado-" End If End If If Winsock1.State = winsock1Connecting Then Label4.Caption = "-Conectando-" End If End Sub Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long) Dim datos As String Text1.Text = "" Winsock1.GetData datos Text1.Text = Text1.Text + datos End Sub #pero la parte del Timer me pasa lo que te dije(#el problema es que siempre queda en conectando.)no cambia a conectado ni a desconectado Bueno agradeceria la ayuda Título: Re: Winsock Ayuda plz! Publicado por: elmaro en 27 Julio 2006, 07:27 am si no lo as probado trata de cerrar el servidor aver si en el cliente te aparece desonectado
yo creo que el caption de "Conectando" no lo vas a ver xq se concta muy rapido,.(x experiencia) a no ser que este intentando conecta a "algo" que no se pueda conectar,. ya sea xq no tenga el peurto especificado abierto o xq lo tenga cerrado,. pero no te agas problema x el "conectando" fijate mas en el "desconectado" trata de cerrar el servidor y fiajte El MaRo! Título: Re: Winsock Ayuda plz! Publicado por: n3ts4mura1 en 27 Julio 2006, 07:39 am Pero supuestamente deberia quedar el coenctado todo el rato si cumple la condicion.me podrias explicar mejor,o que tengo mal yo.plz
Título: Re: Winsock Ayuda plz! Publicado por: elmaro en 27 Julio 2006, 18:59 pm si...
no se lo que pasa con ese codigo ,. loa probe y no se que seyo te paso mi metodo,. como lo uso yo esto es simple,... en el boton de conectar le agregas este codigo para que te muestre si esta conectando Código: If ws.State = 6 Then lugo pones esto.. cuadno el winsock coanecta se adispara este evento,. le agregas que te avisea en un label Código: Private Sub ws_Connect() para que te avise cuadno esta desconectado si TU mismo lo desconectas con el boton que utilizas para desconectar...pon esto en el boton para desconectar Código: Private Sub cmd_desconectar_Click() 'commandbuttom que desconecta ahora si kieres que te avise cuando se desconecta xq el servidor se cerro x algun problema o xq lo cerro el usuario de la pc remota,utiliza el evento winsock_close() que te se dispara cuando la conexión se pierde Código: Private Sub ws_Close() esto no se si lo autilizaras pero lo pongo igua,. se dispara cauando se produce algun error Código: Private Sub ws_Error(ByVal Number As Integer, Description As String, ByVal Scode As Long, ByVal Source As String, ByVal HelpFile As String, ByVal HelpContext As Long, CancelDisplay As Boolean) espero que te aya servido lo que te puse,. si no entiendes algo(lo dudo,. xq esta clarito :P) me preguntas y te contesto suerte man El MaRo! Título: Re: Winsock Ayuda plz! Publicado por: n3ts4mura1 en 28 Julio 2006, 01:31 am grax
|