我一直在互联网上搜索这个问题的答案,但我找不到任何相关答案。
事情是:假设我有一台服务器在32位Linux上并用C语言编写。然后我有一个连接到该服务器的客户端应用程序,它在Windows 64bit上运行,客户端用Java编写。现在当这两个人沟通时,不会有问题吗?
Java char类型是2个字节,C char类型是1个字节。从我也在阅读的内容来看,一些Java字符甚至可以是1个字节,这是为char分配的默认内存。如果我要将字符发送到服务器,那会不会有问题?
以更一般的方式,我如何在TCP / UDP之上设计一个独立于不同操作系统和编程语言的类型大小的通信协议?我如何通过网络发送数据?作为字符,整数,某事物的数组,对象???
随意添加您认为与我的问题非常相关的任何和所有文章,SO问题和其他资源。
答案 0 :(得分:1)
使用RPC(远程过程调用)和XDR(外部数据表示)很长时间都解决了这个问题。请参阅有关xdr的rfc4506以及有关rpc和xdr以及此Sun和man rpc
,man xdr
的此rpcgen tutorial文档。
显然,这些描述供C使用。