Test Foro de elhacker.net SMF 2.1

Programación => .NET (C#, VB.NET, ASP) => Programación General => Programación Visual Basic => Mensaje iniciado por: rembolso en 13 Enero 2009, 14:28 PM

Título: problemas con winsock1
Publicado por: rembolso en 13 Enero 2009, 14:28 PM
hola
e tenido problemas ultimamente con el winsoc1 de vb el cliente se conecta perfectamente al servidor pero cuando hago la  siguiiente hacion el server no responde
cliente  ejemplo
(cmd8)
dim dat
dat =  File1.Path & "\" & File1.FileName

winsock1.sendata  "t#" & dat

haora viene el problema
servidor :-X

Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
Dim datos As String
Winsock1.GetData datos

Select Case datos
Case "t#"

Kill (datos)

End Select
end sub

el sevidor no responde a la acion no lo borra al archivo selecionado 


si me podria ayudar


Título: Re: problemas con winsock1
Publicado por: seba123neo en 13 Enero 2009, 14:46 PM
Hola, lo que llega no es "t#" sino "t#" & dat,por eso nom debe entrar en el select case... proba decirle que si en la cadena encuentra el t# que haga eso...o sea usa InStr...

PD:Hombre este problema se soluciona en 1 segundo si sabes debuggerar el codigo fuente...fijate que valor tiene datos y listo...

saludos.
Título: Re: problemas con winsock1
Publicado por: rembolso en 13 Enero 2009, 15:40 PM
a ok de la forma q me decis seria haci
servidor  :huh:

Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
Dim datos As String
Winsock1.GetData datos

Select Case datos                        'no funca  :-( :-(
Case "t#" &dat

Kill (datos)

End Select
end sub

e provado de otra forma
-----------------------------------------------------------
Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
Dim Tempdata As String
Winsock1.GetData Tempdata
    Select Case Left(Tempdata, 10)
     Case "1#" &dat                'no funca
       Tempdata = Mid(Tempdata, 11, Len(Tempdata))
kill  Tempdata

End Select
o otra forma
---------------------------------------------------------------------------
Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
Dim Tempdata As String
Winsock1.GetData Tempdata
    Select Case Left(Tempdata, 10)             'tampoco funca
     Case "1#"
       Tempdata = Mid(Tempdata, 11, Len(Tempdata))
  kill    Tempdata

End Select
me lo podrias hacer un ejemplo y subirlo a megaunload o donde quieras   ;D
saludos
Título: Re: problemas con winsock1
Publicado por: cassiani en 13 Enero 2009, 16:18 PM
Hay varias formas de hacerlo, lo que sucede es que no sigues el flujo de los datos, como te dicen, el valor que toma la variable "Datos" a la hora de hacer el selec case.

Código (vb) [Seleccionar]
Dim Datos$
    'Cuando el servidor lo recibe, este es el supuesto valor que toma la variable Datos
    Datos = "t#c:\...\archivo.extensión"
    Select Case Mid(Datos, 1, 2)
        Case "t#"
            Debug.Print Mid(Datos, 3)
    End Select


La forma que apliques dependera de si "t#" es un indicador o no y los diferentes casos que se te puedan ocurrir.

http://www.recursosvisualbasic.com.ar/htm/tutoriales/tutorial-basico5.htm#left-mid-right
Título: Re: problemas con winsock1
Publicado por: rembolso en 13 Enero 2009, 17:25 PM
aun haci sigo sin entender  :rolleyes:
toy un poco mariado jajaj
seria haci
cliente :
winsock1.sendata "t#" &text1.text

server
Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
dim data1 as string
winsock1.getdata dato
DoEvents
Select Case Mid(data1, 1, 10)
case "t#"
MsgBox Mid(data1, 11, Len(data1))
end select
end sub
Título: Re: problemas con winsock1
Publicado por: cassiani en 13 Enero 2009, 18:05 PM
CitarPrivate Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
dim data1 as string     --> o.O
winsock1.getdata dato --> ????????
DoEvents
Select Case Mid(data1, 1, 10)
case "t#"
MsgBox Mid(data1, 11, Len(data1))
end select
end sub

data1 o dato  :huh:, no es lo mismo.  :-\
Título: Re: problemas con winsock1
Publicado por: vivachapas en 13 Enero 2009, 20:44 PM
ayy q manera de complicarse la vida xD

Código (vb) [Seleccionar]
dim dat
dat =  File1.Path & "\" & File1.FileName

winsock1.sendata  "t#" & dat


haora viene el problema
servidor

Código (vb) [Seleccionar]
Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
Dim datos As String
Winsock1.GetData datos

Select Case datos
Case "t#"

Kill (datos)

End Select
end sub



el problema ahi es lo q te explico seba...

vos estas mandando esto por ejemplo: t#C:\Archivo.txt

pero cuanod esto llega al cliente, nunca entra en el case... x datos es igual a t#C:\Archivo.txt y no a t#

lo q podes hacer ahora es esto... sin modificar el servidor, solamente cambiar a esto en el cliente

Código (vb) [Seleccionar]
Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
Dim datos As String
Winsock1.GetData datos

Select Case Left(datos,2)
Case "t#"

Kill (Right(datos, Len(datos) - 2)

End Select
end sub



----------------------
ahora:
CitarSelect Case datos                        'no funca   
Case "t#" &dat

eso no funca xq
Citar"t#" &dat
&dat = Null... no es nada.. nunca declaraste nada con dat...

---------------------
desp lo q puso Cassiani esta bien... es mas o menos lo q te explique yo mas arriba...

y despues lo q volviste a publicar

Código (vb) [Seleccionar]
Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
dim data1 as string
winsock1.getdata dato
DoEvents
Select Case Mid(data1, 1, 10)
case "t#"
MsgBox Mid(data1, 11, Len(data1))
end select
end sub


esta mal xq vos declaras la variable
Código (vb) [Seleccionar]
data1 pero desp llamas para q reciba los datos a
Código (vb) [Seleccionar]
dato y finalmente lees nuevamente la primer variable q nunca modificaste (solo la declaraste)

bue espero q hayas entendido... estoy al dope x eso me puse a explicar un poco este lio q se armo xD..

SALUDOS
Título: Re: problemas con winsock1
Publicado por: cassiani en 14 Enero 2009, 00:20 AM
Algo que se me escapo,
CitarSelect Case Mid(data1, 1, 10)

Si haces eso extraerás 10 caracteres (donde se marca en rojo, es el número de caracteres a extraer) y a la hora de hacer la comparación, no entrara al case que colocas porque la cadena de condición solo tiene dos caracteres. ¿Me explico?

Ese enlace que te había colocado es para que lo leas, hay te explican muy bien el uso de esas funciones, lo demás es lógica.

Saludos
Título: Re: problemas con winsock1
Publicado por: rembolso en 14 Enero 2009, 01:42 AM

vivachapas esta forma
Citar
Código (vb) [Seleccionar]
Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)

Dim datos As String
Winsock1.GetData datos

Select Case Left(datos, 2)
Case "t#"
Kill (Right(datos, Len(datos)) - 2)

End Select
end sub


me dise error:
run-time error "13":
type mismatch
y me señala esto
Kill (Right(datos, Len(datos)) - 2)





toy mas perdido q tarzan en el centro  :rolleyes:
Título: Re: problemas con winsock1
Publicado por: seba123neo en 14 Enero 2009, 02:06 AM
el -2 esta fuera del parentesis...
Título: Re: problemas con winsock1
Publicado por: rembolso en 14 Enero 2009, 02:17 AM
ok gaxcias el problema ya lo solucione

haci quedo
Código (vb) [Seleccionar]
Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
'Declaramos la variable que recibirá los datos
Dim data1 As String
'Tomamos los datos que nos envían
Winsock1.GetData data1
DoEvents

'separamos el String y determinamos que accion nos está mandando el Cliente
Select Case Mid(data1, 1, 10)

Case "#MENSAJE##"
  Kill Mid(data1, 11, Len(data1))
End Select

End Sub