C++ Socket网络编程1.2版本 发送结构化的网络消息数据和网络数据报文

本文介绍了C++ Socket编程中如何实现结构化的网络消息传递,通过定义结构体来增强消息的复杂性。同时,讲解了网络数据报文的组成,包括包头和包体,并探讨了在实际操作中分次发送和接收包头与包体可能存在的问题。
摘要由CSDN通过智能技术生成

目前的版本中,客户端和服务端的网络通信 实现了简单的逻辑:(1)客户端发送请求(字符串)到服务端 (2)服务端处理请求(字符串) (3)服务端返回处理结果(字符串)

本节没有改进客户端和服务端的业务逻辑,而是改进字符串的消息传递,构建结构化的网络消息,使网络传输功能更复杂。

在这里插入图片描述

**

使用结构体定义结构化的网络消息(1.2版本)

在这里插入图片描述
**
在客户端和服务端程序代码中定义结构体
//一定要保证服务端和客户端(操作系统)中 数据结构字节顺序和大小保证一致 内存对齐

struct DataPackage
{
	int age;
	char name[32];
};

在服务端中 更改 send语句

if (0 == strcmp(_recvBuf, "getInfo"))
		{
			DataPackage dp = {24,"Evila"};
			send(_clientSock, (const char*)&dp, sizeof(DataPackage), 0); 
		}

在客户端中 更改recv语句

<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值