How to set the socket type and the protocol of a socket using create_connection?
Guillaume Comte
guillaume.comte10 at gmail.com
Wed Aug 22 03:29:37 EDT 2012
Le mercredi 22 août 2012 04:10:43 UTC+2, Dennis Lee Bieber a écrit :
> On Tue, 21 Aug 2012 10:00:28 -0700 (PDT), Guillaume Comte
>
> <guillaume.comte10 at gmail.com> declaimed the following in
>
> gmane.comp.python.general:
>
>
>
> A later follow-up
>
> > Unfortunatly, my_socket.bind((src_addr, 1)) doesn't work. I get the error message: "socket.error: [Errno 49] Can't assign requested address"...
>
> >
>
>
>
> Since .bind() is used to set up a /listener/, the network stack
>
> (LINK layer) probably has to be tied to the IP address; that is, a valid
>
> "source" address needs to be supplied to .bind.
>
Do you mean that an alias is not a valid source address? Because ping.c can do it...
I've also tried changing the port to 3333 or 8080 but the same error happens.
>
>
>
>
> > But when I try to set a source address, I still get the same error message...
>
> >
>
> > Does anyone know how I could build the IP header (I don't even know if it can be the solution but it's worth a try...)?
>
>
>
> Based upon http://linux.die.net/man/7/raw "Raw sockets allow new
>
> IPv4 protocols to be implemented in user space. A raw socket receives or
>
> sends the raw datagram not including link level headers. " implies that
>
> you need to build the entire IP packet for your ICMP message... That
>
> means you do NOT use socket methods to set fields -- you'll probably
>
> have to use something like the struct module to lay out the entire IP
>
> packet /including/ header contents, and then pass that as-is to the
>
> socket.
>
>
>
> --
>
> Wulfraed Dennis Lee Bieber AF6VN
>
> wlfraed at ix.netcom.com HTTP://wlfraed.home.netcom.com/
More information about the Python-list
mailing list