Коллеги,
насколько мне известно, ОДЗ номеров TCP-портов 0..65535. Однако PROCEDURE CommTCP.NewStream проверяет номер порта только на >= 0. А если номер порта > 65535, поток все равно благополучно создается, но ессно порт там абы какой.
Предлагаю усилить проверку:
было:
Код:
IF ok & (portnr >= 0) THEN (* only non-negative port numbers are legal *)
сделать:
Код:
IF ok & (portnr >= 0) & (portnr < 65536) THEN (* portnr ∈ 0..65535 *)
В продолжении процедуры уже есть грамотная обработка ошибок, если порт некорректный - возникает ошибка invalidLocalAdr.