Parte 1: Servidor PowerShell (TCP Server)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
# Importar la biblioteca .NET para trabajar con sockets Add-Type -TypeDefinition @" using System; using System.Net; using System.Net.Sockets; using System.Text; "@ # Definir el puerto en el que el servidor escuchará $port = 12345 # Crear un punto de escucha (socket) en el puerto especificado $listener = New-Object System.Net.Sockets.TcpListener([System.Net.IPAddress]::Any, $port) $listener.Start() Write-Host "Servidor escuchando en el puerto $port..." # Esperar a que un cliente se conecte $client = $listener.AcceptTcpClient() $stream = $client.GetStream() $reader = [System.IO.StreamReader] $stream $writer = [System.IO.StreamWriter] $stream # Leer mensajes del cliente y mostrarlos while ($true) { $message = $reader.ReadLine() Write-Host "Mensaje del cliente: $message" $writer.WriteLine("Mensaje recibido: $message") $writer.Flush() } # Cerrar el servidor $listener.Stop() |
Parte 2: Cliente PowerShell (TCP Client)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
# Importar la biblioteca .NET para trabajar con sockets Add-Type -TypeDefinition @" using System; using System.Net; using System.Net.Sockets; using System.Text; "@ # Dirección IP y puerto del servidor al que se conectará el cliente $serverIP = "127.0.0.1" $port = 12345 # Crear una instancia de cliente TCP $client = New-Object System.Net.Sockets.TcpClient $client.Connect($serverIP, $port) # Obtener el flujo de datos para enviar y recibir mensajes $stream = $client.GetStream() $reader = [System.IO.StreamReader] $stream $writer = [System.IO.StreamWriter] $stream # Enviar mensajes al servidor $writer.WriteLine("Hola, servidor!") $writer.Flush() # Leer la respuesta del servidor $response = $reader.ReadLine() Write-Host "Respuesta del servidor: $response" # Cerrar la conexión $client.Close() |