Jython socket typecasting problems

Steve Holden steve at holdenweb.com
Sun Feb 12 23:00:55 EST 2006


Diez B. Roggisch wrote:
>>This is the code section of my server class (I cut this from a Python
>>example):
>>    def establishConnection(self):
>>        self.socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
>>        self.socket.connect((self.host, self.port))
>>Do I have to use explicit typecasting? How can this be achieved?
> 
> 
> There is no such thing as explicit casting in python. You can coerce 
> values to values of another type - e.g. float("1.0"), and there are some 
> "magic" methods to support that (for that example __float__)
> 
> However, that doesn't seem to be your problem. You just pass the wrong 
> arguments, which makes the jython wrapping punke on you as only certain 
> types can be dealt with.
> 
> To me this looks as if you are supposed to do it like this:
> 
> self.socket.connect(self.host, self.port)
> 
> Note the missing parentheses.
> 
"""connect(address)
     Connect to a remote socket at address. (The format of address 
depends on the address family -- see above.) Note: This method has 
historically accepted a pair of parameters for AF_INET addresses instead 
of only a tuple. This was never intentional and is no longer available 
in Python 2.0 and later. """

So if Jython 2.1 is conformant it should indeed require a single 
argument which is an (IPAddress, port) tuple.

It might be that the OP can't, for some reason associate with the local 
environment, resolve "localhost" to an IP address. What happens if 
"127.0.0.1" is substituted?

Irrespective of that, it does seem that the error message is at best 
misleading and at most just plain wrong. There's aproject to bring 
Jython up to a more recent specification, but it will take time ...

regards
  Steve
-- 
Steve Holden       +44 150 684 7255  +1 800 494 3119
Holden Web LLC                     www.holdenweb.com
PyCon TX 2006                  www.python.org/pycon/




More information about the Python-list mailing list