PoshCode Archive  Hex Artifact Content

Artifact 9cae7381b7e155e12c0eca6aa16aa37b8007d21275a3c6963949e55713b544be:

  • File Test-TCPPort.ps1 — part of check-in [c7ea2c0947] at 2018-06-10 14:13:18 on branch trunk — Test-TCPPort (user: Test-TCPPort size: 1262)

0000: 23 20 65 6e 63 6f 64 69 6e 67 3a 20 61 73 63 69  # encoding: asci
0010: 69 0d 0a 23 20 61 70 69 3a 20 70 6f 77 65 72 73  i..# api: powers
0020: 68 65 6c 6c 0d 0a 23 20 74 69 74 6c 65 3a 20 54  hell..# title: T
0030: 65 73 74 2d 54 43 50 50 6f 72 74 0d 0a 23 20 64  est-TCPPort..# d
0040: 65 73 63 72 69 70 74 69 6f 6e 3a 20 54 65 73 74  escription: Test
0050: 2d 54 43 50 50 6f 72 74 0d 0a 23 20 76 65 72 73  -TCPPort..# vers
0060: 69 6f 6e 3a 20 30 2e 31 0d 0a 23 20 74 79 70 65  ion: 0.1..# type
0070: 3a 20 66 75 6e 63 74 69 6f 6e 0d 0a 23 20 61 75  : function..# au
0080: 74 68 6f 72 3a 20 54 65 73 74 2d 54 43 50 50 6f  thor: Test-TCPPo
0090: 72 74 0d 0a 23 20 6c 69 63 65 6e 73 65 3a 20 43  rt..# license: C
00a0: 43 30 0d 0a 23 20 66 75 6e 63 74 69 6f 6e 3a 20  C0..# function: 
00b0: 54 65 73 74 2d 54 43 50 50 6f 72 74 0d 0a 23 20  Test-TCPPort..# 
00c0: 78 2d 70 6f 73 68 63 6f 64 65 2d 69 64 3a 20 36  x-poshcode-id: 6
00d0: 33 32 39 0d 0a 23 20 78 2d 61 72 63 68 69 76 65  329..# x-archive
00e0: 64 3a 20 32 30 31 36 2d 30 36 2d 30 33 54 30 30  d: 2016-06-03T00
00f0: 3a 30 38 3a 34 35 0d 0a 23 20 78 2d 70 75 62 6c  :08:45..# x-publ
0100: 69 73 68 65 64 3a 20 32 30 31 36 2d 30 34 2d 32  ished: 2016-04-2
0110: 39 54 31 31 3a 32 31 3a 30 30 0d 0a 23 0d 0a 23  9T11:21:00..#..#
0120: 0d 0a 66 75 6e 63 74 69 6f 6e 20 54 65 73 74 2d  ..function Test-
0130: 54 43 50 50 6f 72 74 0d 0a 7b 0d 0a 20 20 20 20  TCPPort..{..    
0140: 5b 43 6d 64 6c 65 74 42 69 6e 64 69 6e 67 28 29  [CmdletBinding()
0150: 5d 0d 0a 20 20 20 20 70 61 72 61 6d 0d 0a 20 20  ]..    param..  
0160: 20 20 28 0d 0a 20 20 20 20 20 20 20 20 5b 50 61    (..        [Pa
0170: 72 61 6d 65 74 65 72 28 50 6f 73 69 74 69 6f 6e  rameter(Position
0180: 3d 30 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20  =0,..           
0190: 20 20 20 20 20 20 20 20 56 61 6c 75 65 46 72 6f          ValueFro
01a0: 6d 50 69 70 65 6c 69 6e 65 3d 24 74 72 75 65 2c  mPipeline=$true,
01b0: 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  ..              
01c0: 20 20 20 20 20 56 61 6c 75 65 46 72 6f 6d 50 69       ValueFromPi
01d0: 70 65 6c 69 6e 65 42 79 50 72 6f 70 65 72 74 79  pelineByProperty
01e0: 4e 61 6d 65 3d 24 74 72 75 65 29 5d 0d 0a 20 20  Name=$true)]..  
01f0: 20 20 20 20 20 20 5b 41 6c 69 61 73 28 27 68 6f        [Alias('ho
0200: 73 74 6e 61 6d 65 27 29 5d 0d 0a 20 20 20 20 20  stname')]..     
0210: 20 20 20 5b 41 6c 69 61 73 28 27 63 6e 27 29 5d     [Alias('cn')]
0220: 0d 0a 20 20 20 20 20 20 20 20 5b 73 74 72 69 6e  ..        [strin
0230: 67 5b 5d 5d 24 4e 61 6d 65 20 3d 20 24 65 6e 76  g[]]$Name = $env
0240: 3a 43 4f 4d 50 55 54 45 52 4e 41 4d 45 2c 0d 0a  :COMPUTERNAME,..
0250: 0d 0a 20 20 20 20 20 20 20 20 5b 50 61 72 61 6d  ..        [Param
0260: 65 74 65 72 28 50 6f 73 69 74 69 6f 6e 3d 32 29  eter(Position=2)
0270: 5d 0d 0a 20 20 20 20 20 20 20 20 5b 69 6e 74 5d  ]..        [int]
0280: 24 50 6f 72 74 3d 38 30 2c 0d 0a 0d 0a 20 20 20  $Port=80,....   
0290: 20 20 20 20 20 5b 50 61 72 61 6d 65 74 65 72 28       [Parameter(
02a0: 50 6f 73 69 74 69 6f 6e 3d 33 29 5d 0d 0a 20 20  Position=3)]..  
02b0: 20 20 20 20 20 20 5b 49 6e 74 5d 24 54 69 6d 65        [Int]$Time
02c0: 4f 75 74 20 3d 20 31 30 30 30 0d 0a 20 20 20 20  Out = 1000..    
02d0: 29 0d 0a 0d 0a 20 20 20 20 42 45 47 49 4e 20 7b  )....    BEGIN {
02e0: 20 0d 0a 09 20 20 20 20 24 53 6f 63 6b 65 74 20   ...    $Socket 
02f0: 3d 20 4e 65 77 2d 4f 62 6a 65 63 74 20 53 79 73  = New-Object Sys
0300: 74 65 6d 2e 4e 65 74 2e 53 6f 63 6b 65 74 73 2e  tem.Net.Sockets.
0310: 54 43 50 43 6c 69 65 6e 74 0d 0a 20 20 20 20 7d  TCPClient..    }
0320: 0d 0a 0d 0a 20 20 20 20 50 52 4f 43 45 53 53 0d  ....    PROCESS.
0330: 0a 20 20 20 20 7b 0d 0a 20 20 20 20 20 20 20 20  .    {..        
0340: 24 43 6f 6e 6e 65 63 74 20 3d 20 24 53 6f 63 6b  $Connect = $Sock
0350: 65 74 2e 42 65 67 69 6e 43 6f 6e 6e 65 63 74 28  et.BeginConnect(
0360: 24 4e 61 6d 65 2c 24 50 6f 72 74 2c 24 6e 75 6c  $Name,$Port,$nul
0370: 6c 2c 24 6e 75 6c 6c 29 0d 0a 09 20 20 20 20 69  l,$null)...    i
0380: 66 20 28 20 24 43 6f 6e 6e 65 63 74 2e 49 73 43  f ( $Connect.IsC
0390: 6f 6d 70 6c 65 74 65 64 20 29 0d 0a 09 20 20 20  ompleted )...   
03a0: 20 7b 0d 0a 09 20 20 20 20 09 24 57 61 69 74 20   {...    .$Wait 
03b0: 3d 20 24 43 6f 6e 6e 65 63 74 2e 41 73 79 6e 63  = $Connect.Async
03c0: 57 61 69 74 48 61 6e 64 6c 65 2e 57 61 69 74 4f  WaitHandle.WaitO
03d0: 6e 65 28 24 54 69 6d 65 4f 75 74 2c 24 66 61 6c  ne($TimeOut,$fal
03e0: 73 65 29 0d 0a 09 20 20 20 20 09 69 66 28 21 24  se)...    .if(!$
03f0: 57 61 69 74 29 20 0d 0a 09 20 20 20 20 09 7b 0d  Wait) ...    .{.
0400: 0a 09 20 20 20 20 09 09 72 65 74 75 72 6e 20 24  ..    ..return $
0410: 66 61 6c 73 65 20 0d 0a 09 20 20 20 20 09 7d 20  false ...    .} 
0420: 0d 0a 09 20 20 20 20 09 65 6c 73 65 0d 0a 09 20  ...    .else... 
0430: 20 20 20 09 7b 0d 0a 09 20 20 20 20 09 09 24 53     .{...    ..$S
0440: 6f 63 6b 65 74 2e 45 6e 64 43 6f 6e 6e 65 63 74  ocket.EndConnect
0450: 28 24 43 6f 6e 6e 65 63 74 29 0d 0a 09 20 20 20  ($Connect)...   
0460: 20 09 09 72 65 74 75 72 6e 20 24 74 72 75 65 0d   ..return $true.
0470: 0a 09 20 20 20 20 09 7d 0d 0a 09 20 20 20 20 7d  ..    .}...    }
0480: 0d 0a 09 20 20 20 20 65 6c 73 65 0d 0a 09 20 20  ...    else...  
0490: 20 20 7b 0d 0a 09 20 20 20 20 09 72 65 74 75 72    {...    .retur
04a0: 6e 20 24 66 61 6c 73 65 0d 0a 09 20 20 20 20 7d  n $false...    }
04b0: 0d 0a 20 20 20 20 20 20 20 20 7d 0d 0a 0d 0a 20  ..        }.... 
04c0: 20 20 20 45 4e 44 20 7b 20 0d 0a 20 20 20 20 20     END { ..     
04d0: 20 20 20 24 53 6f 63 6b 65 74 2e 43 6c 6f 73 65     $Socket.Close
04e0: 28 29 0d 0a 20 20 20 20 7d 0d 0a 7d 0d 0a        ()..    }..}..