Функция F # хороша, но не при вызове из основного - PullRequest
0 голосов
/ 09 декабря 2018

У меня есть F # функция 'is_up' , чтобы пинговать ip как показано ниже, который отлично работает в FSI REPL (интерактивный), давая то есть true для 8.8.8.8 и false для 8.8.8.1

let pingSender = new Ping()
let is_up (t:int) (ip:string) =
    let reply = pingSender.Send(IPAddress.Parse(ip),t)
    reply.Status = IPStatus.Success

но не из основного.Здесь я всегда получаю «вниз»

[<EntryPoint>]
let main argv =
    let mutable ip = argv.[0];
    if is_up 3 ip then
        printfn "Host %A is up" ip
    else
        printfn "Host %A is down" ip 
    1

1 Ответ

0 голосов
/ 10 декабря 2018

Второй параметр вашей Ping.Send() перегрузки дается в миллисекундах ( source ).Серверы Google работают быстро, но я сомневаюсь, что они такие быстрые.

Могу поспорить, что вы получаете статус ответа IPStatus.TimedOut ( источник ).Попробуйте увеличить значение времени ожидания.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...