ProtoBuf编写网络版本通讯录时遇到问题及解决方案

问题

使用PB编写网络版本通讯录时,遇到这样的问题:

客户端发送序列化后的Request请求给服务端,想要服务端提供相应的响应,但服务端并没有提供相关的响应,并且客户端会处于阻塞状态。如以下情况所示:

解决方案

遇到这样的问题,首先检查是否有相关的头文件没有被包含

比如:使用了std::random_device、std::mt19937、std::uniform_int_distribution来产生随机数,但未包含<random>头文件;使用了std::stringstream,但未包含<sstream>头文件, 这也是导致服务端无法处理请求的一方面原因。所以如果没有包含包含对应的头文件即可。

其次检查using namespace httplib声明是否在using namespace std 的前面(主要原因),如果不是,在全局作用域可能会导致命名冲突,进而导致服务端无法处理请求,所以要进行调整。要确保客户端和服务端程序中 using namespace httplib声明在using namespace std 的前面。

如果服务端任然出现阻塞的情况,将XShell重启,重新make程序即可

最终的结果如下:

相关推荐
wzl202612131 天前
基于规则引擎的新客欢迎语自动化:从0到1搭建智能破冰系统
大数据·运维·自动化
风酥糖1 天前
在Termux中部署一个简单的服务导航页
linux·服务器·安卓
风曦Kisaki1 天前
# Linux进阶Day03逻辑卷管理与RAID磁盘阵列
linux·运维·5g
与数据交流的路上1 天前
linux-系统日志的归档
linux·运维·javascript
杭州杭州杭州1 天前
Docker实验5
运维·docker·容器
释怀不想释怀1 天前
硬盘分区:fdisk
linux·运维·服务器
时空无限1 天前
ubuntu 22.04 如何使用命令查看配置防火墙规则
服务器·网络·ubuntu
sky wide1 天前
[特殊字符] Docker Compose 安装指南
运维·docker·容器
biubiubiu07061 天前
Ubuntu 22.04 高级运维与架构规范手册
运维·ubuntu·架构
vvw&1 天前
如何在 Linux 中安装和使用 nftables
linux·运维·服务器·ubuntu