Microsoft/Windows

파워셀 TCP 소켓 열어 데이터 보내기

구차니 2025. 7. 22. 17:21

와.. bash로는 상상도 못했는데 한번 찾아봐야겠다

System.Net.Sockets.TcpClient로 열고

GetStream() 으로 스트림을 열어서

tcpstream.Write() 하면 끝.. 와... 신세계네

 

$routerAddress = "192.168.10.126"
$port = "23"
$tcp = New-Object System.Net.Sockets.TcpClient($routerAddress,$Port)
$tcpstream = $tcp.GetStream()
$reader = New-Object System.IO.StreamReader($tcpStream)
$writer = New-Object System.IO.StreamWriter($tcpStream)
$writer.AutoFlush = $true

while ($tcp.Connected)
{       
    write-host ([char]$reader.Read()) -NoNewline

    while(($reader.Peek() -ne -1) -or ($tcp.Available)){        
        write-host ([char]$reader.Read()) -NoNewline
    }

    if ($tcp.Connected)
    {
        Write-Host -NoNewline "_"
        $command = Read-Host

        if ($command -eq "escape")
        {
            break
        }
        $writer.WriteLine($command) | Out-Null
    }     
}

$reader.Close()
$writer.Close()
$tcp.Close()

[링크 : https://stackoverflow.com/questions/29759854/how-to-connect-to-tcp-socket-with-powershell-to-send-and-receive-data]

[링크 : https://learn.microsoft.com/ko-kr/dotnet/api/system.net.sockets.tcpclient?view=net-9.0]