[Mono-devel-list] Remoting of an ArrayList in Mono .24

Matt Davey matt.davey at finetix.com
Sun May 11 07:05:01 EDT 2003


Hi,

First off, Mono 0.24 remoting is a massive jump in functionality over
previous version. 0.24 is very cool indeed.

I'm currently trying to get a Windows XP C# console application talking to a
Mono 0.24 server running on RH 8.0 using the new interface support in 0.24.
Eveything works fine apart from when I try to send an ArrayList from the
Windows client to the Mono server.

Client code:

ChannelServices.RegisterChannel(new TcpChannel(0));
IServerObject s =
Activator.GetObject(typeof(IServerObject),"tcp://localhost:8085/Test") as
IServerObject;
ArrayList al = new ArrayList();
al.Add("one");
al.Add("two");
s.Send(al);

server code:

public interface IServerObject
{
void Send(ArrayList al);
}

public class HelloServer: MarshalByRefObject , IServerObject
{

public void Send(ArrayList al)
{
foreach (object o in al)
{
Console.WriteLine(o);
}
}
}

I see no errors on RH, but on the client I get this:

Unhandled Exception: System.Runtime.Remoting.RemotingException: Underlying
socke
t was closed.

Server stack trace:
   at System.Runtime.Remoting.Channels.SocketHandler.ReadFromSocket(Byte[]
buffe
r, Int32 offset, Int32 count)
   at System.Runtime.Remoting.Channels.SocketHandler.BufferMoreData()
   at System.Runtime.Remoting.Channels.SocketHandler.Read(Byte[] buffer,
Int32 o
ffset, Int32 count)
   at
System.Runtime.Remoting.Channels.SocketHandler.ReadAndMatchFourBytes(Byte[
] buffer)
   at
System.Runtime.Remoting.Channels.Tcp.TcpSocketHandler.ReadVersionAndOperat
ion(UInt16& operation)
   at
System.Runtime.Remoting.Channels.Tcp.TcpClientSocketHandler.ReadHeaders()
   at
System.Runtime.Remoting.Channels.Tcp.TcpClientTransportSink.ProcessMessage
(IMessage msg, ITransportHeaders requestHeaders, Stream requestStream,
ITranspor
tHeaders& responseHeaders, Stream& responseStream)
   at
System.Runtime.Remoting.Channels.BinaryClientFormatterSink.SyncProcessMess
age(IMessage msg)

Exception rethrown at [0]:
   at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage
req
Msg, IMessage retMsg)
   at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData&
msgDa
ta, Int32 type)
   at comlib.IServerObject.Send(ArrayList al)
   at clientcomlib.Class1.Main(String[] args) in d:\visual studio
projects\mono\
clientcomlib\client.cs:line 45

If I run the client and server on MS .NET everything works fine.

Later




More information about the Mono-devel-list mailing list