| 325 | |
| 326 | |
| 327 | class NetworkingThreadIPv4(NetworkingThread): |
| 328 | def __init__(self, observer): |
| 329 | super().__init__(observer) |
| 330 | |
| 331 | def _makeMreq(self, addr): |
| 332 | "IPvv multicast group join/leave request" |
| 333 | return struct.pack("4s4s", socket.inet_aton(MULTICAST_IPV4_ADDRESS), addr.packed) |
| 334 | |
| 335 | def _get_inet(self): |
| 336 | return socket.AF_INET |
| 337 | |
| 338 | def _get_multicast(self): |
| 339 | return socket.IP_MULTICAST_IF |
| 340 | |
| 341 | def _get_ip_proto(self): |
| 342 | return socket.IPPROTO_IP |
| 343 | |
| 344 | def _get_ip_join(self): |
| 345 | return socket.IP_ADD_MEMBERSHIP |
| 346 | |
| 347 | def _get_ip_leave(self): |
| 348 | return socket.IP_DROP_MEMBERSHIP |
| 349 | |
| 350 | def _get_multicast_ttl(self): |
| 351 | return socket.IP_MULTICAST_TTL |
| 352 | |
| 353 | |
| 354 | class NetworkingThreadIPv6(NetworkingThread): |