Python、PyCharm和Windows中的UDP大数据包碎片
我现在正在学习网络和阅读《Python网络编程基础》一书。当我在windows中使用PyCharm学习套接字和网络编程过程时,我在书中跟踪UDP数据包碎片代码,发现Python、PyCharm和Windows中的UDP大数据包碎片,python,sockets,networking,Python,Sockets,Networking,我现在正在学习网络和阅读《Python网络编程基础》一书。当我在windows中使用PyCharm学习套接字和网络编程过程时,我在书中跟踪UDP数据包碎片代码,发现模块(in)中的一个是linux系统中的默认软件包 我想问: 包中的是关于什么的 其他哪些参数可用于替换.IP\u MTU\u DISCOVER、IN.IP\u PMTUDISC\u DO、IN.IP\u MTU中的 以下是本书提供的代码: import IN, argparse, socket if not hasattr(IN,
模块(in)
中的一个是linux系统中的默认软件包
我想问:
是关于什么的
import IN, argparse, socket
if not hasattr(IN, 'IP_MTU'):
raise RuntimeError('cannot perform MTU discovery on this combination of operating system and Python distribution')
def send_big_datagram(host, port):
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
sock.setsockopt(socket.IPPROTO_IP, IN.IP_MTU_DISCOVER, IN.IP_PMTUDISC_DO)
sock.connect((host,port))
try:
sock.send(b'#'*65000)
except socket.error:
print('Alas, the datagram did not make it')
max_mtu = sock.getsockopt(socket.IPPROTO_IP, IN.IP_MTU)
print('The big datagram was sent!')
if __name__ == '__main__':
parser = argparse.ArgumentParser(description='Send UDP packet to get MTU')
parser.add_argument('host', help='the host to which to target the packet')
parser.add_argument('-p', metavar='PORT', type=int, default=1060, help='UDP port (default 1060)')
args = parser.parse_args()
send_big_datagram(args.host, args.p)
来自:“要求我们推荐或查找书籍、工具、软件库、教程或其他非现场资源的问题对于堆栈溢出来说是非主题的,因为它们往往会吸引自以为是的答案和垃圾邮件。相反,请描述问题以及迄今为止为解决问题所做的工作。”你应该编辑你的问题,删除其中要求书籍推荐的部分。正如你所说的,你对这个问题有什么想法吗?不过,你要求的是工具推荐,而不是说明问题。IN模块有什么困难?IN模块是Linux系统中的默认软件包,Windows中不存在。我要求在Windows系统中使用模块的替代方案,但不建议使用工具。请仔细看一下描述。我确实提到了用于更换模块内组件的参数。