Cliente:
Código
Option Explicit Private Sub Command1_Click() Winsock1.RemotePort = 9000 Winsock1.RemoteHost = Text1.Text Winsock1.Connect End Sub Private Sub Command2_Click() Dim apagar As Long apagar = 1 Winsock1.SendData apagar End Sub Private Sub Command3_Click() Dim reiniciar As Long reiniciar = 2 Winsock1.SendData reiniciar End Sub
Aqui lo que hago es asiganrle el valor 1 a apagar y a reiniciar 2. Por qué? Porque asi con una instruccion condicional en el servidor podre establecer lo que quiero que haga (corrijanme si esto no se puede hacer).
Servidor:
Código
Option Explicit Const EWX_LOGOFF = 0 Const EWX_SHUTDOWN = 1 Const EWX_REBOOT = 2 Const EWX_FORCE = 4 Private Declare Function ExitWindowsEx& Lib "user32" (ByVal uFlags&, ByVal dwReserved&) Private Sub Form_Load() Winsock1.LocalPort = 9000 Winsock1.Listen 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 Long Winsock1.GetData datos If datos = 1 Then datos = ExitWindowsEx(1, 0&) If datos = 2 Then datos = ExitWindowsEx(2, 0&) End Sub
EL servidor es sencillo, establezco el puerto de escucha acepto la conexion y recibo los datos. La duda viene a continuación. En el evento DataArrival recibo los datos y les asigno como variable datos, luego estblezco una condición para que dependiendo del valor de la cadena de datos que entre reinicie o apague.
PEro señores el codigo no funciona, compila bien y todo eso pero cunado aprito en apagar x ejemplo no se apaga. No salta ningun error ni nada pero no funciona. Espero me puedan decir cual es el error en el code. Grcias de nuevo.