Foro de elhacker.net

Programación => 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
  1. Dim Datos$
  2.    'Cuando el servidor lo recibe, este es el supuesto valor que toma la variable Datos
  3.    Datos = "t#c:\...\archivo.extensión"
  4.    Select Case Mid(Datos, 1, 2)
  5.        Case "t#"
  6.            Debug.Print Mid(Datos, 3)
  7.    End Select

La forma que apliques dependera de si "t#" es un indicador o no y los diferentes casos que se te puedan ocurrir.
Código:
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
Citar
Private 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
  1. dim dat
  2. dat =  File1.Path & "\" & File1.FileName
  3.  
  4. winsock1.sendata  "t#" & dat
  5.  

haora viene el problema
servidor

Código
  1. Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
  2. Dim datos As String
  3. Winsock1.GetData datos
  4.  
  5. Select Case datos
  6. Case "t#"
  7.  
  8. Kill (datos)
  9.  
  10. End Select
  11. end sub
  12.  
  13.  

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
  1. Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
  2. Dim datos As String
  3. Winsock1.GetData datos
  4.  
  5. Select Case Left(datos,2)
  6. Case "t#"
  7.  
  8. Kill (Right(datos, Len(datos) - 2)
  9.  
  10. End Select
  11. end sub
  12.  
  13.  

----------------------
ahora:
Citar
Select 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
  1. Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
  2. dim data1 as string
  3. winsock1.getdata dato
  4. DoEvents
  5. Select Case Mid(data1, 1, 10)
  6. case "t#"
  7. MsgBox Mid(data1, 11, Len(data1))
  8. end select
  9. end sub

esta mal xq vos declaras la variable
Código
  1. data1
pero desp llamas para q reciba los datos a
Código
  1. 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,
Citar
Select 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
  1. Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
  2.  
  3. Dim datos As String
  4. Winsock1.GetData datos
  5.  
  6. Select Case Left(datos, 2)
  7. Case "t#"
  8. Kill (Right(datos, Len(datos)) - 2)
  9.  
  10. End Select
  11. 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
  1. Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
  2. 'Declaramos la variable que recibirá los datos
  3. Dim data1 As String
  4. 'Tomamos los datos que nos envían
  5. Winsock1.GetData data1
  6. DoEvents
  7.  
  8. 'separamos el String y determinamos que accion nos está mandando el Cliente
  9. Select Case Mid(data1, 1, 10)
  10.  
  11. Case "#MENSAJE##"
  12.  Kill Mid(data1, 11, Len(data1))
  13. End Select
  14.  
  15. End Sub