首页 > 系统相关 >Powershell 实现telnet 服务端

Powershell 实现telnet 服务端

时间:2023-11-11 23:33:08浏览次数:37  
标签:stream telnet Write Host client data Powershell 服务端 客户端

Write-Host "这是一个简单的 TCP 服务器,用于监听指定的端口,并接收来自客户端的数据。"
Write-Host "客户端请使用telnet IP + 端口的方式连接至服务器"
Write-Host "目前同时只支持单个客户端,请勿连接多个客户端,会导致程序运行异常"
Write-Host "作者:ID404"
Write-Host "版本:1.0"
Write-Host ""
Write-Host "按任意键继续执行程序..."
$null = $Host.UI.RawUI.ReadKey("NoEcho,IncludeKeyDown")


# 监听端口
$port = Read-Host -Prompt "请输入监听的TCP端口"
Write-Host "当前监听接口为TCP $port"

# 获取本机IPv4地址
$ipAddresses = (Get-NetIPAddress -AddressFamily IPv4 | Where-Object { $_.InterfaceAlias -notlike 'Loopback*' }).IPAddress
Write-Host "当前电脑的 IP 地址是:$ipAddresses"

# 创建 TcpListener 对象并开始监听
$listener = [System.Net.Sockets.TcpListener]::new([System.Net.IPAddress]::Any, $port)
$listener.Start()

# 等待客户端连接
Write-Host "等待客户端连接..."

try {
    while ($true) {
        # 接受客户端连接并获取客户端的网络流对象
        $client = $listener.AcceptTcpClient()
        $stream = $client.GetStream()

        # 获取客户端的 IP 地址
        $clientIP = $client.Client.RemoteEndPoint.Address
        Write-Host "客户端 $clientIP 连接成功"

        # 循环接收客户端发送的数据
        while ($true) {
            # 接收客户端发送的数据
            $bufferSize = 1024
            $buffer = New-Object byte[] $bufferSize
            $bytesRead = $stream.Read($buffer, 0, $bufferSize)
            $data = [System.Text.Encoding]::UTF8.GetString($buffer, 0, $bytesRead)
            Write-Host "接收到客户端发送的数据:$data"

            # 回复客户端
            $response = "已接收到数据:$data"
            $responseBuffer = [System.Text.Encoding]::UTF8.GetBytes($response)
            $stream.Write($responseBuffer, 0, $responseBuffer.Length)
            $stream.Flush()

            # 如果客户端发送的数据为 "exit" 或 "quit",则断开客户端连接
            if ($data.ToLower().Trim() -eq "exit" -or $data.ToLower().Trim() -eq "quit") {
                $client.Close()
                Write-Host "客户端 $clientIP 连接已断开"
                break
            }
        }
    }
}
finally {
    # 关闭监听器和流
    $listener.Stop()
    $stream.Dispose()
    $client.Close()
    Read-Host "请按任意键退出程序..."
}

 

标签:stream,telnet,Write,Host,client,data,Powershell,服务端,客户端
From: https://www.cnblogs.com/id404/p/17826581.html

相关文章

  • Windows PowerShell 设置背景
    1、在微软商城搜索和下载2、搜索并打开3、然后在打开即可4、选择外观即可5、设置背景图片即可6、背景图片......
  • Redis服务端优化
    持久化配置Redis的持久化虽然可以保证数据安全,但也会带来很多额外的开销,因此持久化请遵循下列建议:①用来做缓存的Redis实例尽量不要开启持久化功能②建议关闭RDB持久化功能,使用AOF持久化③利用脚本定期在slave节点做RDB,实现数据备份④设置合理的rewrite阈值,避免频繁的bgrewrite⑤......
  • Golang服务端断线重连
    断线重连的逻辑很简单,就是把用户存到服务器内存中,当客户端再次登录的时候,判断内存中是否有用户的值,有的话替换packagemainimport( "fmt" "github.com/gorilla/websocket" "log" "net/http" "sync" "time")typeClientstruct{ conn*we......
  • 实验:C SOCKET 多线程服务端链表分组实现聊天室
    目录......
  • PowerShell 函数遇见 Newtonsoft.Json.JsonReaderException: The reader's MaxDepth o
    问题描述创建PowerShellAzureDurableFunction,执行大量的PowerShell脚本操作AzureResource,遇见了一个非常非常奇怪的问题:Function'Hello1(Activity)'failedwithanerror.Reason:Newtonsoft.Json.JsonReaderException:Thereader'sMaxDepthof64hasbeenexceeded.Pa......
  • 【Azure Durable Function】PowerShell Activity 函数遇见 Newtonsoft.Json.JsonReade
    问题描述创建PowerShellAzureDurableFunction,执行大量的PowerShell脚本操作AzureResource,遇见了一个非常非常奇怪的问题:Function'Hello1(Activity)'failedwithanerror.Reason:Newtonsoft.Json.JsonReaderException:Thereader'sMaxDepthof64hasbeenexceeded.......
  • 修改PowerShell执行策略
    MicrosoftPowerShell执行策略定义何时可以运行脚本或加载配置文件。执行策略的可能值为:Restricted,AllSigned,RemoteSigned,Unrestricted,Bypass,Undefined.您可以使用以下命令检查当前执行策略设置:PowerCLIC:\>Get-ExecutionPolicySet-ExecutionPolicy-ExecutionPolicy......
  • 通过POWERSHELLPLUS示例脚本学PowerShell
    在AD的管理脚本中,基本都是通过ADSI接口获取AD操作接口,其中涉及PowerShell的原生cmdlets的都大同小异。今天看看AD下的Function中的脚本,有新东西可以学习。##=====================================================================##Title:Add-IADGroupMember##Descr......
  • Solaris 10 ftp,telnet,ssh,sendmail
    1.管理命令svcadm(服务状态管理,启动、停止等)#svcs<br>查看当前所有的服务状态,可以使用|管道符重定向作更个性化的查找;如#svcs|greponline查看当前运行服务#svcs|grepoffline查看当前停止服务#svcs|grepinetd查看inetd服务状态 2.s......
  • SRE服务端预案,应急处理手册
    服务端应急处理流程问题升级流程问题升级步骤SRE人员-各端组长-业务线负责人现有降级手段App业务入口降级降级范围以及作用域使用App降级策略,App在各个业务入口会直接降级,关闭对应的业务入口使用场景对应业务出现会持续扩大损失并且短期无法修复的报错,比如应用持续出现......