[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