Хорошо, все изменилось, чтобы задать более конкретный вопрос.Создание Python Pinger - Розетки
У меня есть два метода. doOnePing было моим творением, чтобы использовать sendOnePing, который был написан для меня, чтобы лучше понять сокеты.
Я пытаюсь понять, правильно ли я создаю сокет правильно в doOnePing, но я не уверен, что я упускаю что-то конкретное или могу сделать это лучше.
Благодаря
def sendOnePing(mySocket, destAddr, ID):
# Header is type (8), code (8), checksum (16), id (16), sequence (16)
myChecksum = 0
# Make a dummy header with a 0 checksum
# struct -- Interpret strings as packed binary data
header = struct.pack("bbHHh", ICMP_ECHO_REQUEST, 0, myChecksum, ID, 1)
data = struct.pack("d", time.time())
# Calculate the checksum on the data and the dummy header.
myChecksum = checksum(header + data)
# Get the right checksum, and put in the header
if sys.platform == 'darwin':
# Convert 16-bit integers from host to network byte order
myChecksum = htons(myChecksum) & 0xffff
else:
myChecksum = htons(myChecksum)
header = struct.pack("bbHHh", ICMP_ECHO_REQUEST, 0, myChecksum, ID, 1)
packet = header + data
mySocket.sendto(packet, (destAddr, 1)) # AF_INET address must be tuple, not str
# Both LISTS and TUPLES consist of a number of objects
# which can be referenced by their position number within the object.
def doOnePing(destAddr, timeout):
icmp = getprotobyname("icmp")
# SOCK_RAW For more details: http://sock-raw.org/papers/sock_raw
# Fill in start
mySocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
#Fill in end
myID = os.getpid() & 0xFFFF # Return the current process i
sendOnePing(mySocket, destAddr, myID)
delay = receiveOnePing(mySocket, myID, timeout, destAddr)
mySocket.close()
return delay
Вы задаете кучу вопросов здесь. Вам нужно разбить их, чтобы они отвечали. Найдите небольшую область SPECIFIC, в которой вам нужна помощь, а затем покажите нам, что –
Кроме того, если вы новичок в Python, попробуйте проработать простые вещи, вместо того, чтобы входить в исчерпывающие и, как вы говорите, запутывающие инициативы. – Zizouz212
Хорошо, да, я понимаю, что ... Наверное, я довольно смущен вообще. Было бы лучше, если бы я задал конкретный вопрос об одном конкретном методе? – TheCrownedPixel