0207作业

server/2025/2/9 13:09:15/

思维导图

 

 服务器

enum Type{TYPE_REGIST,TYPE_LOGIN
};typedef struct Pack{int size;enum Type type;char buf[2048];}pack_t;typedef struct list{union Data{struct List* tail;char str[64];}data;struct List* next;struct List* prev;
}List;List* create_node(){List* H=malloc(sizeof(List));H->next=NULL;H->prev=NULL;H->data.tail=H;return H;
}void insert(List* head,List* p){head->data.tail->next=p;p->next=head;p->prev=head->data.tail;p->data.tail=p;
}void read_pack(pack_t* pack){List* head=create_node();int readed_size = 0;while(1){short data_size = *(short*)(pack->buf+readed_size);if(data_size == 0){printf("数据解析完毕\n");break;}readed_size += 2;List* p=calloc(1,sizeof(List));memcpy(p->data.str,pack->buf+readed_size,data_size);readed_size +=data_size;insert(head,p);}	
}int main(int argc, const char *argv[])
{int server=socket(AF_INET,SOCK_STREAM,0);struct sockaddr_in addr ={0};addr.sin_family=AF_INET;addr.sin_port=htons(8888);addr.sin_addr.s_addr=inet_addr("0.0.0.0");if(bind(server,(addr_t*)&addr,sizeof(addr))==-1){perror("bind");return 1;}listen(server,10);addr_in_t client_addr={0};int client_addr_len=sizeof(client_addr);int client=accept(server,(struct sockaddr*)&client_addr,&client_addr_len);while(1){pack_t pack={0};int pack_size=0;read(client,&pack_size,4);read(client,(char*)&pack+4,pack_size-4);pack.size=pack_size;read_pack(&pack);}return 0;
}


http://www.ppmy.cn/server/166224.html

相关文章

openAI官方prompt技巧(二)

1. 赋予 ChatGPT 角色 为 ChatGPT 指定一个角色,让其从特定的身份或视角回答问题。这有助于生成针对特定受众或场景的定制化回答。 例如: 你是一名数据分析师,负责我们的市场营销团队。请总结上个季度的营销活动表现,并强调与未…

node.js的require()

2009年,Node.js 项目诞生,所有模块一律为 CommonJS 格式。 时至今日,Node.js 的模块仓库 npmjs.com ,已经存放了15万个模块,其中绝大部分都是 CommonJS 格式。 这种格式的核心就是 require 语句,模块通过…

spy-debugger + Charles 调试移动端/内嵌小程序H5

简介说明: PC端可以用F12进行console等进行调试,但移动端App中使用webview就无法进行实时调试,针对这种情况 1. 安装 全局安装 spy-debugger sudo npm install spy-debugger -g // window不用加sudo2. spy-debugger 证书 其实spy-debugg…

【Redis】主从模式,哨兵,集群

主从复制 单点问题: 在分布式系统中,如果某个服务器程序,只有一个节点(也就是一个物理服务器)来部署这个服务器程序的话,那么可能会出现以下问题: 1.可用性问题:如果这个机器挂了…

Leecode刷题C语言之全排列②

执行结果:通过 执行用时和内存消耗如下: int* path; int pathTop; int** ans; int ansTop; int cnt[8];//标记path中是否已有此索引值,这也是同46题不同点 void backTracking(int* nums,int numsSize,int startIndex,int** returnColumnSizes){if(pathT…

使用scoop 下载速度慢怎么办

在国内使用 Scoop 下载速度慢是一个常见问题,主要是因为 Scoop 默认的软件源(bucket)和下载服务器通常位于国外。以下是一些提高下载速度的方法: 1. 更换 Scoop 镜像源(Bucket 镜像): 原理&…

k8s部署go-fastdfs

前置环境:已部署k8s集群,ip地址为 192.168.10.1~192.168.10.5,总共5台机器。 1. 创建provisioner制备器(如果已存在,则不需要) 制备器的具体部署方式可参考我的上一篇文章: k8s部署rabbitmq-CSDN博客文章浏览阅读254次,点赞3次,收藏5次。k8s部署rabbitmqhttps://blo…

sounddevice 进行gradio控制录音

Sounddevice import timeimport sounddevice as sd import numpy as np from scipy.io.wavfile import writeSAMPLE_RATE 16000 # 采样率(Hz) DURATION 5 # 录音时长(秒)def save():# 录音参数print("开始录音..."…