[IronPython] Two problems

Joao Grilo grilo at netcabo.pt
Thu Aug 12 15:46:09 PDT 2004

Consider the following code:


import System
import System.Net
import System.Net.Sockets
def callbackFunction(socket):
## IronPython quirk: must cast "arrays" to lists, for them to work properly
hostAddress = list(System.Net.Dns.Resolve(System.Net.Dns.GetHostName()).AddressList)[0]
hostEndpoint = System.Net.IPEndPoint(hostAddress, 1800)
socket = System.Net.Sockets.Socket(System.Net.Sockets.AddressFamily.InterNetwork, 
print """Runs up to this point"""
asyncAccept = socket.BeginAccept(System.AsyncCallback(callbackFunction), socket)
print """This won't show at all, due to a core dump"""
while asyncAccept.IsCompleted == False:
    print '.'


There are 2 (two) problems to be noted:

The Array held by "System.Net.Dns.Resolve(System.Net.Dns.GetHostName()).AddressList"
can't be accessed normaly, and *must* be cast to a list() object prior to use it.
1. Shouldn't "Array" objects be automatically converted to lists?

I can't get the callbackFunction function to be called at all. It simply core dumps
as soon as that line is executed, and it returns this:

%ironpython helloworldIronPython.py
Runs up to this point

** ERROR **: file object.c: line 1595 (mono_runtime_invoke_array): assertion failed: (((gpointer*)params->vector) [i])
Abort trap (core dumped)

If I run the C# (C Sharp) Server example code found in
http://www.go-mono.com/docs/monodoc.ashx?link=T%3aSystem.Net.Sockets.Socket it works
perfectly, but not mine. 
2. Does my code contain a bug, or is IronPython not doing the right thing?

Thank you for your attention.
Sincerely yours

João Grilo

More information about the users-ironpython.com mailing list