如何在python中设置socket选项ipdontfrag?

2024-04-23 10:39:54 发布

您现在位置:Python中文网/ 问答频道 /正文

如何使用python套接字在IP头中设置DONT_FRAGMENT标志?在

以下代码

socket.setsockopt(socket.IPPROTO_IP, socket.IP_DONTFRAG, 1)

给我这个错误:

^{pr2}$

有人有主意吗?在


Tags: 代码ip标志错误socket主意dontfragment
1条回答
网友
1楼 · 发布于 2024-04-23 10:39:54
def create_sender_session(self):
    logging.debug("Create Sender Session")
    if (self.send_ip_ver == 6 or self.resp_ip_ver == 6):
        self.sender_socket = socket.socket(
            socket.AF_INET6, socket.SOCK_DGRAM)
        self.sender_socket.setsockopt(
            socket.IPPROTO_IPV6, socket.IPV6_TCLASS, self.tos)
        self.sender_socket.setsockopt(
            socket.IPPROTO_IPV6, socket.IPV6_UNICAST_HOPS, self.ttl)
    else:
        self.sender_socket = socket.socket(
            socket.AF_INET, socket.SOCK_DGRAM)
        self.sender_socket.setsockopt(
            socket.SOL_IP, socket.IP_TTL, self.ttl)
        self.sender_socket.setsockopt(
            socket.IPPROTO_IP, socket.IP_TOS, self.tos)
    self.sender_socket.setsockopt(
        socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
    self.sender_socket.bind((self.send_addr, self.send_port))
    logging.info('Sender started: {}:{}'.format(
        self.send_addr, self.send_port))

相关问题 更多 >