如何在python中使用create_connection设置套接字类型和套接字协议?

时间:2012-08-20 09:40:17

标签: python sockets types protocols

我想使用socket.create_connection()在python中的ping实现中设置源地址。

但是我怎样才能设置类型和协议?因为,之前,我做过:

icmp = socket.getprotobyname("icmp") 
my_socket = socket.socket(socket.AF_INET, socket.SOCK_RAW, icmp) 

但现在,我这样做:

src_addr = socket.gethostbyname(src_addr) 
dest_addr = socket.gethostbyname(dest_addr) 
my_socket = socket.create_connection(dest_addr, socket.getdefaulttimeout(), src_addr) 

有类似my_socket.setproto()的内容吗?我还没有在文档中找到这样的功能。

谢谢你, 纪尧姆

1 个答案:

答案 0 :(得分:0)

create_connection将创建一个TCP连接,因此它不会做你想要的。您需要使用您自己给出的示例中的原始套接字。为什么要切换到使用socket.create_connection?