关于使用套接字时函数调用约定的建议
我计划使用套接字在客户端 32 位应用程序和 64 位应用程序之间进行函数调用。
通过套接字接口调用函数、传递变量和返回参数的最佳方案是什么?我可以控制客户端和服务器代码,因此我可以实现任何内容。
我在想,让套接字数据包由以下部分组成: - 1 个字:函数名称的长度(字符数) - string:实际的函数名称 - 1 个字:函数参数的长度(以字节为单位) - 函数参数
请让我知道什么是最强大和可扩展的方法。也许我可以重用编译器、Web 服务或虚拟机调用约定所使用的原则。
提前致谢
I plan to use sockets to make function calls between a client 32 bit application and a 64 bit application.
What would be the best scheme to call functions, pass variables and return parameters via the socket interface. I have control over both the client and the server code so I can implement anything.
I was thinking, to have the socket packet being made up of:
- 1 word: length (# of characters) of the function name
- string: the actual function name
- 1 word: length (in bytes) of the function parameters
- function parameters
Please let me know, what would be the most robust and extensible approaches. Maybe I can reuse principles used by calling conventions by compilers, web services or virtual machines.
Thanks in advance
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我建议您使用 Protocol Buffers 进行序列化:
http:// code.google.com/apis/protocolbuffers/docs/reference/cpp/index.html
教程:
http://code.google.com/apis/protocolbuffers/docs/cpptutorial.html
当您将对象发送到另一端时,以长度前缀(32位int)开头,它定义您应该读取多少字节才能获得完整的 protobuf 消息。
I suggest that you use Protocol Buffers for the serialization:
http://code.google.com/apis/protocolbuffers/docs/reference/cpp/index.html
Tutorial:
http://code.google.com/apis/protocolbuffers/docs/cpptutorial.html
When you send the object to the other side, start with a length prefix (32bit int) which defines how many bytes you should read to get a complete protobuf message.