3大核心价值+实战案例:WeChatMsg让微信聊天记录发挥真正价值

核心内容摘要

Qwen3-VL多模态摘要实战:图文混合内容提炼部署教程
Qwen3-ForcedAligner-0.6B:支持11种语言的语音时间戳预测

全网最全继续教育AI论文软件TOP9:高效写作神器测评

文章目录TCP服务端基础服务端TCP服务设计模式迭代服务一次处理一个客户端多进程并发服务僵尸进程处理信号处理多线程并发服务嵌入式设备线程注意TCP客户端基础客户端交互式客户端客户端断线重连机制TCP服务端基础服务端// 基础TCP服务器核心流程#defineBUFFER_SIZE1024// 根据设备内存自定义charbuf[BUFFER_SIZE];intmain(){//

创建socketfdsocket(AF_INET,SOCK_STREAM,

;//

准备地址结构addr.sin_familyAF_INET;addr.sin_porthtons(PORT);addr.sin_addr.s_addr0;// INADDR_ANY的另一种写法//

绑定地址bind(fd,(structsockaddr*)addr,sizeof(addr));//

开始监听listen(fd,BACKLOG);//

接受连接阻塞等待newfdaccept(fd,NULL,NULL);// 不关心客户端地址//

接收数据read(newfd,buf,BUFFER_SIZE);//

关闭连接close(newfd);close(fd);return0;}TCP服务设计模式迭代服务一次处理一个客户端// 简化的迭代服务器框架while(

{client_fdaccept(server_fd,NULL,NULL);if(client_fd

continue;handle_client(client_fd);// 处理客户端请求close(client_fd);// 处理完后关闭}缺点无法并发处理多个客户端多进程并发服务// 父进程监听连接创建子进程处理// 子进程处理具体客户端请求结束后退出pid_tpidfork();if(pid

{// 子进程close(server_fd);// 关闭不需要的监听sockethandle_client(client_fd);close(client_fd);exit(

;// 子进程结束}else{// 父进程close(client_fd);// 父进程关闭已分发的客户端socketwaitpid(-1,NULL,WNOHANG);// 非阻塞回收子进程}僵尸进程处理信号处理// 使用信号处理函数回收子进程voidsigchld_handler(intsig){while(waitpid(-1,NULL,WNOHANG)

{// 回收所有已终止的子进程}}// 注册信号处理器signal(SIGCHLD,sigchld_handler);// 更推荐使用sigaction可重启系统调用structsigactionsa;sa.sa_handlersigchld_handler;sigemptyset(sa.sa_mask);sa.sa_flagsSA_RESTART|SA_NOCLDSTOP;sigaction(SIGCHLD,sa,NULL);多线程并发服务// 主线程监听连接创建子线程// 工作线程处理客户端请求void*client_handler(void*arg){intclient_fd*(int*)arg;// 处理客户端...close(client_fd);returnNULL;}// 创建线程处理每个客户端pthread_ttid;int*client_fd_ptrmalloc(sizeof(int));*client_fd_ptrclient_fd;pthread_create(tid,NULL,client_handler,client_fd_ptr);pthread_detach(tid);// 分离线程自动回收资源嵌入式设备线程注意//

设置线程栈大小嵌入式内存有限pthread_attr_tattr;pthread_attr_init(attr);pthread_attr_setstacksize(attr,

;// 8KB栈空间//

线程池模式避免频繁创建销毁线程//

注意线程安全共享数据加锁TCP客户端基础客户端// 核心流程intmain(){//

创建socketfdsocket(AF_INET,SOCK_STREAM,

;//

设置服务器地址addr.sin_familyAF_INET;addr.sin_porthtons(PORT);addr.sin_addr.s_addrinet_addr(

127.

0.

0.

;//

连接服务器connect(fd,(structsockaddr*)addr,sizeof(addr));//

发送数据write(fd,STR,sizeof(STR));//

关闭连接close(fd);}交互式客户端// 支持命令行参数和交互式输入intmain(intargc,char*argv[]){// 检查参数if(argc

{fprintf(stderr,用法: %s IP地址 端口\n,argv[0]);exit(EXIT_FAILURE);}// 解析参数char*server_ipargv[1];intserver_portatoi(argv[2]);// 创建socket和连接...// 交互循环while(

{printf(请输入消息: );fgets(buf,BUFSIZ,stdin);// 发送数据intnwrite(fd,buf,strlen(buf));if(n

{perror(发送失败);break;}// 可选接收服务器响应// n read(fd, response, sizeof(response));}}客户端断线重连机制// 嵌入式设备常用增加连接稳定性#defineMAX_RETRY5#defineRETRY_DELAY3// 秒intconnect_with_retry(constchar*ip,intport,intmax_retry){intsockfd;structsockaddr_inaddr;for(intretry0;retrymax_retry;retry){sockfdsocket(AF_INET,SOCK_STREAM,

;if(sockfd

{perror(创建socket失败);return-1;}memset(addr,0,sizeof(addr));addr.sin_familyAF_INET;addr.sin_porthtons(port);inet_pton(AF_INET,ip,addr.sin_addr);if(connect(sockfd,(structsockaddr*)addr,sizeof(addr))

{printf(连接成功第%d次尝试\n,retry

;returnsockfd;}close(sockfd);printf(连接失败%d秒后重试...\n,RETRY_DELAY);sleep(RETRY_DELAY);}fprintf(stderr,连接失败达到最大重试次数\n);return-1;}

菠萝视频-菠萝视频应用

百度百家号客服电话人工服务

123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123