• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    PowerShell脚本开发之收发UDP消息包

    在上篇文章中,在PSNet工具集中创建了Send-TCPMessage和Receive-TCPMessage两个函数实现了通过PowerShell收发TCP消息包的功能,有了TCP包的发送和接收,自然少不了UDP消息包的发送和接收,本文将会介绍通过PowerShell发送和接收UDP消息包的方法。

    为了能跟之前的PSNet程序集匹配,继续基于此程序集进行扩展,在$env:PSSpace\PSNet下创建UDPOp目录,在其中创建Receive-UDPMessage.ps1和Send-UDPMessage.ps1两个文件,代码稍后插入。

    在$env:PSSpace\PSNet\PSNet.psm1中添加对上述两个脚本文件的引用,代码如下:

    复制代码 代码如下:

    . $env:PSSpace/PSNet/TCPOp/Receive-UDPMessage.ps1
    . $env:PSSpace/PSNet/TCPOp/Send-UDPMessage.ps1

    需要注意的是这两行代码需要在PSNet.psm1中已经存在的Export-ModuleMember -Function *代码之前,以便能保证被引入的脚本文件中包含的函数均可以作为该程序集模块的成员注册,以便能够被PowerShell进程识别。

    下面附上代码:

    复制代码 代码如下:

     =====文件名:Receive-UDPMessage.ps1=====
    Function Receive-UDPMessage
    {
        param ( [ValidateNotNullOrEmpty()]
        [int] $Port )

        try
        {
            $EndPoint = New-Object System.Net.IPEndPoint([System.Net.IPAddress]::Loopback,$Port)
            $UDPClient = New-Object System.Net.Sockets.UDPClient($Port)
            $ReceiveMessage = $UDPClient.Receive([System.Management.Automation.PSReference]$EndPoint)
            [System.Text.Encoding]::ASCII.GetString($ReceiveMessage)
        }
        catch{}
    }

    复制代码 代码如下:

            =====文件名:Send-UDPMessage.ps1=====
    Function Send-UDPMessage
    {
        param ( [ValidateNotNullOrEmpty()]
        [string] $EndPoint,
        [int] $Port,
        [string] $Message )

        $IP = [System.Net.Dns]::GetHostAddresses($EndPoint)
        $Address = [System.Net.IPAddress]::Parse($IP)
        $EndPoints = New-Object System.Net.IPEndPoint($Address,$Port)
        $Socket = New-Object System.Net.Sockets.UDPClient
        $EncodedText = [Text.Encoding]::ASCII.GetBytes($Message)
        $SendMessage = $Socket.Send($EncodedText,$EncodedText.Length,$EndPoints)
        $Socket.Close()
    }

    启动两个PowerShell进程分别导入PSNet模块:

    复制代码 代码如下:

    Import-Module $env:PSSpace\PSNet

    首先运行Receive-UDPMessage对端口进行监听:

    复制代码 代码如下:

    Receive-UDPMessage 8080

    然后通过Receive-UDPMessage函数对上面指定的端口发送消息:

    复制代码 代码如下:

    Send-UDPMessage 127.0.0.1 8080 "This is a UDP Message Send from PSNet!"

    发送之后会在前面的窗口中显示消息内容。

    本文中的实例中为了显示发送效果,字符串传输过程中是ASCII字符的形式传送的,但是实际情况中通常是十六进制数据形式,在后续的文章中我们将会对本文的实例进行改进以便适应实际工作中的需要。

    您可能感兴趣的文章:
    • PowerShell小技巧之发送TCP请求
    • PowerShell小技巧之尝试ssh登录
    • PowerShell脚本开发之收发TCP消息包
    • PowerShell脚本开发尝试登录SQL Server
    • PowerShell脚本开发之批量扫描IP和端口
    • PowerShell脚本开发之尝试登录ftp
    上一篇:PowerShell脚本开发之收发TCP消息包
    下一篇:PowerShell脚本开发尝试登录SQL Server
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    PowerShell脚本开发之收发UDP消息包 PowerShell,脚本,开,发之,收发,