{"id":33463,"date":"2012-10-16T14:24:56","date_gmt":"2012-10-16T13:24:56","guid":{"rendered":"https:\/\/www.fuhaijun.com\/?p=33463"},"modified":"2024-11-06T11:18:46","modified_gmt":"2024-11-06T03:18:46","slug":"powershell%e6%94%b6%e5%8f%91udp%e6%b6%88%e6%81%af%e5%8c%85","status":"publish","type":"post","link":"http:\/\/www.fuhaijun.com\/?p=33463","title":{"rendered":"PowerShell\u6536\u53d1UDP\u6d88\u606f\u5305"},"content":{"rendered":"<p>&#160;&#160;&#160;&#160;&#160; \u5728\u4e0a\u7bc7\u6587\u7ae0\u4e2d\uff0c\u5728PSNet\u5de5\u5177\u96c6\u4e2d\u521b\u5efa\u4e86Send-TCPMessage\u548cReceive-TCPMessage\u4e24\u4e2a\u51fd\u6570\u5b9e\u73b0\u4e86\u901a\u8fc7PowerShell\u6536\u53d1TCP\u6d88\u606f\u5305\u7684\u529f\u80fd\uff0c\u6709\u4e86TCP\u5305\u7684\u53d1\u9001\u548c\u63a5\u6536\uff0c\u81ea\u7136\u5c11\u4e0d\u4e86UDP\u6d88\u606f\u5305\u7684\u53d1\u9001\u548c\u63a5\u6536\uff0c\u672c\u6587\u5c06\u4f1a\u4ecb\u7ecd\u901a\u8fc7PowerShell\u53d1\u9001\u548c\u63a5\u6536UDP\u6d88\u606f\u5305\u7684\u65b9\u6cd5\u3002<\/p>\n<p>\u4e3a\u4e86\u80fd\u8ddf\u4e4b\u524d\u7684PSNet\u7a0b\u5e8f\u96c6\u5339\u914d\uff0c\u7ee7\u7eed\u57fa\u4e8e\u6b64\u7a0b\u5e8f\u96c6\u8fdb\u884c\u6269\u5c55\uff0c\u5728$env:PSSpace\\PSNet\u4e0b\u521b\u5efaUDPOp\u76ee\u5f55\uff0c\u5728\u5176\u4e2d\u521b\u5efaReceive-UDPMessage.ps1\u548cSend-UDPMessage.ps1\u4e24\u4e2a\u6587\u4ef6\uff0c\u4ee3\u7801\u7a0d\u540e\u63d2\u5165\u3002<\/p>\n<p>\u5728$env:PSSpace\\PSNet\\PSNet.psm1\u4e2d\u6dfb\u52a0\u5bf9\u4e0a\u8ff0\u4e24\u4e2a\u811a\u672c\u6587\u4ef6\u7684\u5f15\u7528\uff0c\u4ee3\u7801\u5982\u4e0b\uff1a<\/p>\n<p>. $env:PSSpace\/PSNet\/TCPOp\/Receive-UDPMessage.ps1    <br \/>. $env:PSSpace\/PSNet\/TCPOp\/Send-UDPMessage.ps1<\/p>\n<p>\u9700\u8981\u6ce8\u610f\u7684\u662f\u8fd9\u4e24\u884c\u4ee3\u7801\u9700\u8981\u5728PSNet.psm1\u4e2d\u5df2\u7ecf\u5b58\u5728\u7684Export-ModuleMember -Function *\u4ee3\u7801\u4e4b\u524d\uff0c\u4ee5\u4fbf\u80fd\u4fdd\u8bc1\u88ab\u5f15\u5165\u7684\u811a\u672c\u6587\u4ef6\u4e2d\u5305\u542b\u7684\u51fd\u6570\u5747\u53ef\u4ee5\u4f5c\u4e3a\u8be5\u7a0b\u5e8f\u96c6\u6a21\u5757\u7684\u6210\u5458\u6ce8\u518c\uff0c\u4ee5\u4fbf\u80fd\u591f\u88abPowerShell\u8fdb\u7a0b\u8bc6\u522b\u3002<\/p>\n<p>\u4e0b\u9762\u9644\u4e0a\u4ee3\u7801\uff1a<\/p>\n<pre style=\"font: 9pt verdana, fixedsys, verdana, tahoma\"><span class=\"line_num\">        =====\u6587\u4ef6\u540d\uff1aReceive-UDPMessage.ps1=====<\/span>\nFunction Receive-UDPMessage\n{\n    <font color=\"#0000ff\">param<\/font> ( [ValidateNotNullOrEmpty()]\n    [int] $Port )\n\n    try\n    {\n        $EndPoint = <font color=\"#008080\">New-Object<\/font> System.Net.IPEndPoint([System.Net.IPAddress]::Loopback,$Port)\n        $UDPClient = <font color=\"#008080\">New-Object<\/font> System.Net.Sockets.UDPClient($Port)\n        $ReceiveMessage = $UDPClient.Receive([System.Management.Automation.PSReference]$EndPoint)\n        [System.Text.Encoding]::ASCII.GetString($ReceiveMessage)\n    }\n    catch{}\n}<\/pre>\n<pre style=\"font: 9pt verdana, fixedsys, verdana, tahoma\"><span class=\"line_num\">        =====\u6587\u4ef6\u540d\uff1aSend-UDPMessage.ps1=====<\/span>\n\u9518\u7e01unction Send-UDPMessage\n{\n    <font color=\"#0000ff\">param<\/font> ( [ValidateNotNullOrEmpty()]\n    [string] $EndPoint,\n    [int] $Port,\n    [string] $Message )\n\n    $IP = [System.Net.Dns]::GetHostAddresses($EndPoint)\n    $Address = [System.Net.IPAddress]::Parse($IP)\n    $EndPoints = <font color=\"#008080\">New-Object<\/font> System.Net.IPEndPoint($Address,$Port)\n    $Socket = <font color=\"#008080\">New-Object<\/font> System.Net.Sockets.UDPClient\n    $EncodedText = [Text.Encoding]::ASCII.GetBytes($Message)\n    $SendMessage = $Socket.Send($EncodedText,$EncodedText.Length,$EndPoints)\n    $Socket.Close()\n}<\/pre>\n<p>\u542f\u52a8\u4e24\u4e2aPowerShell\u8fdb\u7a0b\u5206\u522b\u5bfc\u5165PSNet\u6a21\u5757\uff1a<\/p>\n<p>Import-Module $env:PSSpace\\PSNet<\/p>\n<p>\u9996\u5148\u8fd0\u884cReceive-UDPMessage\u5bf9\u7aef\u53e3\u8fdb\u884c\u76d1\u542c\uff1a<\/p>\n<p>Receive-UDPMessage 8080<\/p>\n<p>\u7136\u540e\u901a\u8fc7Receive-UDPMessage\u51fd\u6570\u5bf9\u4e0a\u9762\u6307\u5b9a\u7684\u7aef\u53e3\u53d1\u9001\u6d88\u606f\uff1a<\/p>\n<p>Send-UDPMessage 127.0.0.1 8080 &quot;This is a UDP Message Send from PSNet!&quot;<\/p>\n<p>\u53d1\u9001\u4e4b\u540e\u4f1a\u5728\u524d\u9762\u7684\u7a97\u53e3\u4e2d\u663e\u793a\u6d88\u606f\u5185\u5bb9\u3002<\/p>\n<p>\u672c\u6587\u4e2d\u7684\u5b9e\u4f8b\u4e2d\u4e3a\u4e86\u663e\u793a\u53d1\u9001\u6548\u679c\uff0c\u5b57\u7b26\u4e32\u4f20\u8f93\u8fc7\u7a0b\u4e2d\u662fASCII\u5b57\u7b26\u7684\u5f62\u5f0f\u4f20\u9001\u7684\uff0c\u4f46\u662f\u5b9e\u9645\u60c5\u51b5\u4e2d\u901a\u5e38\u662f\u5341\u516d\u8fdb\u5236\u6570\u636e\u5f62\u5f0f\uff0c\u5728\u540e\u7eed\u7684\u6587\u7ae0\u4e2d\u6211\u4eec\u5c06\u4f1a\u5bf9\u672c\u6587\u7684\u5b9e\u4f8b\u8fdb\u884c\u6539\u8fdb\u4ee5\u4fbf\u9002\u5e94\u5b9e\u9645\u5de5\u4f5c\u4e2d\u7684\u9700\u8981\u3002<\/p>\n<p>&#160;<\/p>\n<p>\u4f5c\u8005: \u4ed8\u6d77\u519b<br \/>\n  <br \/>\u7248\u6743\uff1a\u672c\u6587\u7248\u6743\u5f52\u4f5c\u8005\u6240\u6709<\/p>\n<p>\u8f6c\u8f7d\uff1a\u6b22\u8fce\u8f6c\u8f7d\uff0c\u4e3a\u4e86\u4fdd\u5b58\u4f5c\u8005\u7684\u521b\u4f5c\u70ed\u60c5\uff0c\u8bf7\u6309\u8981\u6c42\u3010\u8f6c\u8f7d\u3011\uff0c\u8c22\u8c22<\/p>\n<p>\u8981\u6c42\uff1a\u672a\u7ecf\u4f5c\u8005\u540c\u610f\uff0c\u5fc5\u987b\u4fdd\u7559\u6b64\u6bb5\u58f0\u660e\uff1b\u5fc5\u987b\u5728\u6587\u7ae0\u4e2d\u7ed9\u51fa\u539f\u6587\u8fde\u63a5\u4e14\u4fdd\u8bc1\u5185\u5bb9\u5b8c\u6574!\u5426\u5219\u5fc5\u7a76\u6cd5\u5f8b\u8d23\u4efb!<\/p>\n<p>\u4e2a\u4eba\u7f51\u7ad9: <a href=\"http:\/\/txj.shell.tor.hu\/\">http:\/\/txj.shell.tor.hu\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>&#160;&#160;&#160;&#160;&#160; \u5728\u4e0a\u7bc7\u6587\u7ae0\u4e2d\uff0c\u5728PSNet\u5de5\u5177\u96c6\u4e2d\u521b\u5efa\u4e86Send [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[43,50,1],"tags":[],"class_list":["post-33463","post","type-post","status-publish","format-standard","hentry","category-powershell","category-50","category-default"],"_links":{"self":[{"href":"http:\/\/www.fuhaijun.com\/index.php?rest_route=\/wp\/v2\/posts\/33463"}],"collection":[{"href":"http:\/\/www.fuhaijun.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.fuhaijun.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.fuhaijun.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.fuhaijun.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=33463"}],"version-history":[{"count":1,"href":"http:\/\/www.fuhaijun.com\/index.php?rest_route=\/wp\/v2\/posts\/33463\/revisions"}],"predecessor-version":[{"id":33745,"href":"http:\/\/www.fuhaijun.com\/index.php?rest_route=\/wp\/v2\/posts\/33463\/revisions\/33745"}],"wp:attachment":[{"href":"http:\/\/www.fuhaijun.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=33463"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.fuhaijun.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=33463"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.fuhaijun.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=33463"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}