스크립트 지연 출력과 ping 명령의 차이점

스크립트 지연 출력과 ping 명령의 차이점

8.8.8.8에 대해 1개의 ping을 수행하고 지연된 출력을 콘솔에 인쇄하는 Python 스크립트를 작성했습니다("py_script:..." 출력). 각 인쇄 후 프로세스는 1초 동안 휴면 상태로 유지됩니다.

업데이트된 정보만 원하기 때문에 한 번에 1개의 ping만 수행합니다(그렇지 않으면 연속 출력의 마지막 줄 - ping 8.8.8.8). 코드는 아래와 같이 표시됩니다.

import re
from time import sleep

try:
    print("ping -c 1 8.8.8.8")
    while(True):
        out = subprocess.check_output(['ping','-c',' 1','8.8.8.8']).decode('utf-8')
        x = re.search("time=(.*)ms",out)
        print("py_script: " + x.group(1) + "ms")
        sleep(1)
except subprocess.CalledProcessError as grepexc:
    if (grepexc.returncode == 1):
        print("E: destination host unreachable: code", grepexc.returncode)
    else:
        print("E: name or service unknown: code", grepexc.returncode)

스크립트의 출력 값과 연속 핑 값을 8.8.8.8과 비교하고 싶습니다. 그래서 저는 두 가지를 모두 했습니다(그림 참조). 하위 프로세스 및 ping 출력

그러나 보시다시피 출력이 다릅니다. 이 출력 전에 동일한 명령을 실행했는데 더 이상한 출력이 나왔습니다. py_script에서는 지연이 58밀리초라고 말하고 ping 명령에서는 지연이 16밀리초라고 했습니다.

이러한 차이가 발생하는 이유는 무엇입니까? 어떤 결과가 현실에 가장 가깝습니까?

관련 정보