练习写套接字通信程序时候写的一段代码,本来想写个聊天室但写来写去进度卡在界面上接节下来都是通信部分的代码
因为只是试验用所以都是用C写的,等界面部分完工后会用类来封装一下
因为本人E文很烂所以变量和函数的命名是具有中国特色的,求理解.不过我注释的很详细了
谨以此文纪念我那坑爹的编程自学生涯......................
#include "stdio.h"
#include
//////////////////////////////数据包接构//////////////////////////////////////
//数据包类型CTOS为客户端使用的数据包,STOC为服务端使用的数据包
#define CTOS 1
#define STOC 2
//数据包存储管道每个包最大为2000字节,其中数据载荷为最大1800字节,其余留着扩展数据包头
struct SJGD {
BYTE sjgd[2000]; //数据缓冲区
DWORD sjcd; //数据长度
};
//数据包头大小为8字节
struct MSG_TOU {
DWORD lxid; //数据包类型
DWORD sxid; //数据包顺序标号
DWORD sjbcd; //数据包长度
};
//服务端-》客户端包
struct MSG_STOC {
DWORD cmd; //命令标识
DWORD sjbcd; //整个MSG_STOC数据包缓冲区的长度
BYTE shuju[1000]; //附加数据缓冲区
};
//客户端-》服务器包
struct MSG_CTOS {
DWORD cmd; //命令标识
DWORD sjbcd; //整个MSG_CTOS数据包缓冲区的长度
BYTE shuju[1800]; //附加数据缓冲区
};
//共用体
union MSG_DATA {
struct MSG_STOC msg_stoc;
struct MSG_CTOS msg_ctos;
};
//完整

这是一个使用C语言编写的SOCKET通信程序中,用于封包和解包数据包的代码示例。包括CTOS(客户端到服务端)和STOC(服务端到客户端)的数据包结构,以及相应的封包和解包函数,用于在数据传输过程中保持数据完整性。
最低0.47元/天 解锁文章
5208

被折叠的 条评论
为什么被折叠?



