I got the answer :)

we should defined output class both of classes (server and client).

If we didn't defined it in both of them, the same case will be happen.

The another way to solve this problem is using DrbUndumped.

When you specify this this in output class like

class output
  include DRbUndumped

....
end

you can receive the instances of class normally.

:) anyway, I hope the other person solve this problem easily.

2009. 06. 29, =BF=C0=C0=FC 10:04, Jun Young Kim =C0=DB=BC=BA:

> Hi. all
>
> quick question :)
>
> I received a drb object from an another process.
>
> let me see an example.
>
> sender class)
>
> A class)
> ..
> def return
> ret =3D output.new(self)
> ...
> ret
> end
>
>
> B class)
> @@buffer
> def buffer(buf)
>    @@buffer << buf
> end
>
> def send
>   DRb.start_service(nil, self)
>   ....
>   DRb.stop_service
> end
>
> def wait_ret
>   @@buffer
> end
>
> receiver class)
>
> DRb.start_service
> ..
>
> tObj =3D DRbObject.new(nil, uri)
>
> buffer =3D tObj.wait_ret
>
> STDOUT.write buffer
>
> DRb.stop_service
>
> in this code,
>
> when i write buffer in stdout, it is appeared by sequences of output =20=

> class.
> but, when i puts buffer in stdout, it is appeared always by =20
> sequences of DRb::unknown or DRb::Object.
>
> I cannot call methods of buffer class(this is an instance of output =20=

> class).
>
> could you give me hints to understand this situation?