[Mono-dev] System.Net.Sockets completeness

Vladimir Lushnikov vladimir.d.lushnikov at gmail.com
Thu Feb 9 03:03:15 EST 2006


I have been trying to port one of my network libraries to Mono, and
have encountered some (minor) incompleteness in the Socket class and
the new asynchronous resolve methods seen in .NET 2.0

What I have noticed is:

System.Net.Sockets.Socket doesn't implement IsBound

Socket.BeginSend doesn't take 7 arguments:

m_Socket.BeginSend(dataBuffer, (int)offset, (int)size,
SocketFlags.None, out interError,
                    new AsyncCallback(a_DataSent), sPac); // Works in
MS .NET 2.0 but not in .NET 2.0 Mono

Socket.EndSend and Socket.EndReceive don't take two arguments
(m_Socket.EndSend(ar, out socketError)) - where the second argument is
an out socket error.

And another thing I found is that Socket.Disconnect is not
implemented. This needs to be worked upon, because Socket.Disconnect
allows socket reuse, which has a good impact on performance of
socket-based applications.

I do not have any patches, as I haven't looked at the Mono code
(except for the networking bits). I would greatly appreciate if the
functionality became available, but I am not entirely against
receiving some help in implementing it in Mono myself.

Vladimir Lushnikov
Vladimir "Vlad#" Lushnikov
http://www.vladsharp.com - Poetry, programming: all in one day's blog

More information about the Mono-devel-list mailing list