def do_one(myStats,<EOL>destIP,<EOL>hostname,<EOL>timeout,<EOL>mySeqNumber,<EOL>packet_size,<EOL>quiet=False):
delay = None<EOL>try:<EOL><INDENT>mySocket = socket.socket(socket.AF_INET,<EOL>socket.SOCK_RAW,<EOL>socket.getprotobyname("<STR_LIT>"))<EOL><DEDENT>except socket.error as e:<EOL><INDENT>print("<STR_LIT>" % e.args[<NUM_LIT:1>])<EOL>raise  <EOL><DEDENT>my_ID = os.getpid() & <NUM_LIT><EOL>sentTime = send_one_ping(mySocket, destIP, my_ID, mySeqNumber, packet_size)<EOL>if not sentTime:<EOL><INDENT>mySocket.close()<EOL>return delay<EOL><DEDENT>myStats.pktsSent += <NUM_LIT:1><EOL>recvTime, dataSize, iphSrcIP, icmpSeqNumber, iphTTL =receive_one_ping(<EOL>mySocket,<EOL>my_ID,<EOL>timeout)<EOL>mySocket.close()<EOL>if recvTime:<EOL><INDENT>delay = (recvTime - sentTime) * <NUM_LIT:1000><EOL>if not quiet:<EOL><INDENT>print("<STR_LIT>" % (<EOL>dataSize,<EOL>socket.inet_ntoa(struct.pack("<STR_LIT>",<EOL>iphSrcIP)),<EOL>icmpSeqNumber,<EOL>iphTTL,<EOL>delay)<EOL>)<EOL><DEDENT>myStats.pktsRcvd += <NUM_LIT:1><EOL>myStats.totTime += delay<EOL>if myStats.minTime > delay:<EOL><INDENT>myStats.minTime = delay<EOL><DEDENT>if myStats.maxTime < delay:<EOL><INDENT>myStats.maxTime = delay<EOL><DEDENT><DEDENT>else:<EOL><INDENT>delay = None<EOL>print("<STR_LIT>")<EOL><DEDENT>return delay<EOL>
do_one
    Returns either the delay (in ms) or None on timeout.

    :param myStats:
    :param destIP:
    :param hostname:
    :param timeout:
    :param mySeqNumber:
    :param packet_size:
    :param quiet: