RPC: NT Server/UNIX client

I am implementing RPC with an NT server and a UNIX (DEC Alpha) client.

Easy enough to generate both a client and a server on a single platform.  'rpcgen' on UNIX and 'MIDL' on NT.  

The problem is getting a client generated by 'rpcgen' and a server generated by 'MIDL' to communicate.  The 'rpcgen' call seems to be the gating factor.  On the NT side I specify the pipe, the server and information like that.  On the UNIX side I specify nothing of this sort.  It is information such as procedure number and program number.  What are the significance of these things?  How do they fit in with what I did on the NT side?

Can anyone help?

-Joe
joechickAsked:
Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

bkcCommented:
It seems to me that Microsoft's vision of RPC is not compatible with ONC RPC.

I believe NT's RPC mechanism runs over MS-networking (which may be on UDP, IPX or Netbeui) and uses Named Pipes to establish end-points.

I suspect you'll either have to purchase a 3rd party RPC package,
or port Sun's RPC implementation to Win32. We chose the later for an internal project. It wasn't difficult.

Windows uses named pipes for interprocess communication, which it
appears from your comments is what NT's MIDL expects.

You might look at Samba, an SMB implementation for Unix. It might
support named pipes and you might be able get a connection that way.

Also, I don't think Microsoft's RPC implementation is ONC RPC compatible, and I don't think Microsoft uses XDR. So even though both mechanisms are "remote procedure calls", I think they're implemented in different ways, regardless of the transport mechanism they use.

In fact, if you can NOT specify a program number, version and procedure number with NT, there's no way it can call an ONC RPC implementation, even if they both used UDP!

So, I'll change this from a comment to an answer: You can not use
Microsoft's RPC to talk to an ONC RPC server. You must use a 3rd party library or port ONC RPC yourself.

0

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
Networking

From novice to tech pro — start learning today.

Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.