Как получить временные метки Socket TX от Python Socket.sendmsgPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Как получить временные метки Socket TX от Python Socket.sendmsg

Сообщение Anonymous »

При чтении здесь и здесь я вижу, что в системах Linux вы можете запросить временные метки из полученных и передаваемых пакетов, установив параметры сокета. В настоящее время я могу использовать SO_TIMESTAMPNS и SO_TIMESTAMPING для получения RX TimeStams с помощью RecVMSG . С sendmsg я не знаю, как правильно упаковать вспомогательные данные для управляющего сообщения, а Sendmsg даже не имеет возврата, который может хранить данные, которые мне нужны.

Код: Выделить всё

import socket

SO_TIMESTAMPING = 37
SOF_TIMESTAMPING = 127

server_sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server_sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
server_sock.setsockopt(socket.SOL_SOCKET, SO_TIMESTAMPING, SO_TIMESTAMPING, SOF_TIMESTAMPING)

server_sock.bind((_svr_ip, _svr_port))
server_sock.listen(_num_clients)
conn, client_addr = server_sock.accept()

msg, ancdata, flags, address = conn.recvmsg(64, 1024)

t_rx = ancdata[0][2]
t_rx_s = int.from_bytes(t_rec[0:7], byteorder="little")
t_rx_ns = int.from_bytes(t_rec[8:], byteorder="little")

Раздел 1.3.4 упоминает о включении временных метков через управляющие сообщения без необходимости использовать Socket.setsockopt для резервирования накладных расходов. Я считаю, что это означает, что вы добавляете флаг в управляющее сообщение при вызове sendmsg вместо использования socket.setsockopt .

Подробнее здесь: https://stackoverflow.com/questions/788 ... et-sendmsg
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»