Winsock VBS sintaxis Error

Iniciado por r7pyrred, 6 Diciembre 2012, 15:17 PM

0 Miembros y 1 Visitante están viendo este tema.

r7pyrred

 Buenas intento eNviar esto a un vbs server que lo escriba en un text
LAS VECES k hagan falta ,el texto va de un inputbox
Código (vb) [Seleccionar]
Dim winsock, SendData, RecieveData, secs

'****** CHANGE THESE SETTINGS *********

Const RemoteHost           = "127.0.0.1"
Const RemotePort           = 1337

'***************************************

Const skClosed            = 0 '// Default. Closed
Const skOpen              = 1 '// Open
Const skListening         = 2 '// Listening
Const skConnectionPending = 3 '// Connection pending
Const skResolvingHost     = 4 '// Resolving host
Const skHostResolved      = 5 '// Host resolved
Const skConnecting        = 6 '// Connecting
Const skConnected         = 7 '// Connected
Const skClosing           = 8 '// Peer is closing the connection
Const skError             = 9 '// Error

MsgBox "Client Started."
WriteData Now & " - Client Started"

'// CREATE WINSOCK
On Error Resume Next
Set winsock = Wscript.CreateObject("MSWINSOCK.Winsock")
If Err.Number <> 0 Then
   MsgBox "Winsock Object Error!" & vbCrLf & "Script will exit now."
   WriteData Now & " - Winsock Object Error."
   WScript.Quit
End If
On Error Goto 0

'// CONNECT NOW
'winsock.RemoteHost = RemoteHost
'winsock.RemotePort = RemotePort
'winsock.Connect
       
'// MAIN DELAY - WAITS FOR CONNECTED STATE
'// SOCKET ERROR RAISES WINSOCK ERROR SUB
klos()
while winsock.State <> skError And winsock.state <> skConnected And winsock.state <> skClosing And secs <> 25
   WScript.Sleep 1000  '// 1 sec delay in loop
   secs = secs + 1     '// wait 25 secs max
Wend

'// CONNECTION TIMED OUT
If secs > 24 Then
   MsgBox "Timed Out"
   WriteData Now & " - Client Timed Out"
   ClientClose()
End If

'// SEND DATA NOW
 Sub datei(shit)
  klos()
MsgBox("xD")
 MsgBox(shit)
 klos()
 inout = InputBox("HAK?" & Chr(13))

 winsock.SendData (inout)

Msgbox (winsock.State)
 'wscript.sleep 7000
 End Sub
 'Loop 'While inout <> "IWO"
'If 7 > 1 Then
Call datei("s")
Call datei("s")
Call datei("s")
Call datei("s")
Function klos()
MsgBox "reinicia conxion"
winsock.Close()
 winsock.RemoteHost = RemoteHost
winsock.RemotePort = RemotePort
winsock.Connect
End Function

'End If
'// WAIT INCASE NO RESPONSE
' ript.Sleep 25000
'riteData Now & " - Client No Response. Winsock State: " & winsock.state
'lientClose()

'// WINSOCK DATA ARRIVES
Sub winsock_dataArrival(bytesTotal)
   Dim strData
   winsock.GetData strData, vbString
   RecieveData = strData
   WriteData Now & " - Client Recieved: " & RecieveData
   winsock.SendData "Test"  
   WScript.Sleep 1000
   WriteData Now & " - Client Sent Data"
   MsgBox ("a xerrar")
   ClientClose()
End Sub

'// WINSOCK ERROR
Sub winsock_Error(Number, Description, SCode, Source, HelpFile, HelpContext, CancelDisplay)
   MsgBox "Cient Error: " & Number & vbCrLf & Description
   WriteData Now & " - Cient Error: " & Number & ". " & Description
   ClientClose()
End Sub

'// EXIT SCRIPT
Sub ClientClose()
   If winsock.state <> skClosed Then winsock.Close
   Set winsock = Nothing
   WriteData Now & " - Client Closed."
   Wscript.Quit
End SUb

'// CREATE LOG ENTRY
Function WriteData(Data)
   Dim fso, file
   Set fso = CreateObject("Scripting.FileSystemObject")
   Set file = fso.OpenTextFile("C:\WSClient.log", 8, True)
   file.write Data & vbCrLf
   file.Close
   Set file = Nothing
   Set fso = Nothing
End Function

Segadorfelix

¿Es visual basic script(vbs) o es visual basic?

r7pyrred

No importa , es vbscript ,y por cierto no hay activex winsock en 7 al parecer

Eleкtro

Cita de: r7pyrred en  5 Enero 2013, 16:09 PM
:ouna ayudita

Si no aportas ningún dato sobre el problema...

¿En que línea te da error de sintaxis?








r7pyrred

Es un input box de una subrutina llamada datei en la 59 es un inputbox
que pide data para enviar a un vbs server lo que pasa es que solo deja
una vez ,la funcion klos es intenta reiniciar la conexión
pero cuando pones dos mensajes pone el estado de la conexion blabla

JohnConnor

Yo voy a revisar tu codigo para esta noche.. yaya no tengo tiempo ya que para probar un codigo siemppre se necesita una "maquina" nueva y para eso uso virtual pc. ya que yo terngo muchas cosas instaladas con los idles.

Lo mas importante es que sepas que si no tienes VB instalado en el ordenador esto ya no funcionara. aunque puedes registrar la dll e intentar que funcione.

Cuando disponga de mas tiempo reviso bien el codigo. igual yo te recomiendo usar Chilkat aunque la instalacion automatica es mas delicada es mucho mas seguro que funcione: http://www.example-code.com/vbscript/socket.asp

Saludos.