怎么使用网络通讯模拟远程调用

如何使用网络通讯模拟远程调用?
不知道标题这样描述够不够准确
具体是这样子的:
比如,通信角色A是调用方,使用socket发送消息到被调用方B来模拟request请求操作
(这里假设用一个用一个方法封装socket消息发送来模拟远程调用)
通信角色B针对request进行response
在指定的超时时间之内,A一直等待方法返回
得到返回值代表通信成功并返回结果,等待超时则返回超时响应
请问一下你们,有怎么样的实现思路?谢谢了

------解决方案--------------------
最简单的方法:
1.Dcom
2.Corba
3.gSoap
麻烦的方法:需要解决2个问题,封包和定址
1.封包,自己实现Marshalling和UnMarshalling
2.定址,自己约定一个类似协议头或其他的东西,反正能找到对端的函数即可,即使是一个ID也OK