示例web服务器和endianness
Sample web server and the endianness
我已经构建了一个非常示例的web服务器,它带有非阻塞套接字作为Mac的命令行程序。
我使用的主要编程语言是C++,但在某些情况下也使用C。
我也在使用OpenSSL库,这样客户端就可以在网络浏览器中使用"https"。
网络服务器工作,客户端可以从网络浏览器访问它,他们会看到"Hello world"显示。
便携性对我来说非常重要,我的问题是:
-
这里是否有我最早防止的endian问题(因为我只将程序用作web服务器)?
-
发送时需要使用hton(),阅读时需要使用ntohl()吗?
-
据我所知,图像总是以二进制形式发送的(还有其他文件应该以二进制方式发送吗?),但index.html等是以字符串形式发送的。所以我只能在图像上使用hton()?
谢谢你给我时间。我希望有人能简单地向我解释以上问题,因为我有兴趣了解如何正确地做事。
当您使用二进制协议时,您需要担心端序问题。例如,如果您将一个整数作为32位值发送,那么您需要担心字节顺序。
因为HTTP是一种文本协议,所以在发送或接收数据时不需要担心端序问题。在传输二进制文件(如图像)的情况下,文件只是一个字节序列,因此您可以按原样发送和接收它们。如果文件格式涉及任何endianness,那就是处理文件内容的程序需要担心,而不是简单地发送或接收的程序。
相关文章:
- "unknown ca"自生成的 CA、证书和客户端/服务器
- 当我编译webrtc服务器时,Windows上只支持clang-cl
- 如何通过套接字将文本文件的内容从服务器发送到客户端
- 有没有办法知道Tracer是否成功地完全连接到了jaegerclientcpp中的jaeger后端服务器
- 从服务器传输到客户端的消息不会出现
- QTcpSocket在不阻塞GUI的情况下重新连接到服务器
- OpenSSL TLS服务器-使用客户端证书白名单
- 我正在开发服务器,ip作为参数传递不起作用
- 我可以与 python 服务器而不是 c++ 客户端建立 tcp/ip 套接字吗?
- 提升 Asio TCP 服务器 处理多个客户端
- 如何在 Minecraft 服务器上执行命令
- 调试编译的服务器在数据库打开时崩溃
- C++套接字客户端到 Python 服务器未创建连接
- 用于解析 win64 堆栈跟踪的命令行客户端(可以访问符号服务器)
- 将相机数据从服务器实时流式传输到客户端
- 为什么创建服务器后C++ httplib 库阻塞了我的主线程?
- 每个服务器请求的内存预算
- 如何将 Firebase 与基于 Linux 的客户端应用配合使用,以便与服务器进行双向消息通信
- 使用嵌入式猫鼬服务器托管应用程序
- 示例web服务器和endianness