考虑char实际大小的linux socket编程

标签 linux sockets network-programming

我正在使用 Linux 套接字编程编写客户端和服务器程序。我对某事感到困惑。虽然 sizeof(char) 保证为 1,但我知道 char 的实际大小在不同的计算机上可能会有所不同。它可能是 8 位、16 位或其他一些大小。问题是如果客户端和服务器的字符大小不同怎么办。例如,客户端字符大小为 8 位,服务器字符大小为 16 位。客户端调用 write(socket_fd, *c, sizeof(char)) 和服务器调用 read(socket_fd, *c, sizeof(char))。 Client 发送 8bits 而 Server 想要接收 16bits 吗?如果是真的,会发生什么?

另一个问题:在客户端和服务器之间传递文本是否对我有好处,因为我不需要考虑大端和小端问题?

提前致谢。

最佳答案

你正在与哪个系统通信,一个字节有 16 位?在任何情况下,如果您想确切知道您有多少位 - 请改用 int8

关于考虑char实际大小的linux socket编程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9545039/

相关文章:

c - 套接字编程: Using fixed IP to bind server and configurable at client side

python 属性错误 : module 'socks' has no attribute 'setdefaultproxy'

android - TLS - Node.js 服务器到 Android 应用程序

ssh - 通过Raspberry Pi在SSH海外

linux - 来自 TCP 套接字的 HTTP 服务器(在 Go 中)

我可以使用 GDB 跳过整个文件(malloc.c 等)吗?

linux - 我如何获得在 unix 域套接字中排队的数据报数量

java - 当我切换 wifi 网络时,TCP/UDP 服务器套接字会发生什么情况?

javascript - 如何在搜索 js 文件树时缩小 'skip' JavaScript 文件?

linux - 有没有办法检查最近是否刷新了处理器缓存?