当前位置: 首页 > news >正文

支付网站建设wordpress微信支付功能

支付网站建设,wordpress微信支付功能,太原建高铁站,有什么网站可以做充值任务《UNIX网络编程卷1#xff1a;套接字联网API》第5章 TCP客户/服务器程序示例 5.1 本章目标与示例程序概述 本章通过一个完整的TCP回射#xff08;Echo#xff09;客户/服务器程序#xff0c;深入解析TCP套接字编程的核心流程与关键问题。示例程序的功能为#xff1a;客户…《UNIX网络编程卷1套接字联网API》第5章 TCP客户/服务器程序示例 5.1 本章目标与示例程序概述 本章通过一个完整的TCP回射Echo客户/服务器程序深入解析TCP套接字编程的核心流程与关键问题。示例程序的功能为客户端发送文本至服务器服务器将文本原样返回。通过此案例读者将掌握 TCP通信全流程从套接字创建到连接终止并发服务器设计多进程/多线程模型实现健壮性处理应对网络异常与资源管理调试技巧使用工具分析协议交互。 5.2 服务器端程序实现 5.2.1 主函数框架 #include unp.hint main(int argc, char **argv) {int listenfd, connfd;pid_t childpid;socklen_t clilen;struct sockaddr_in cliaddr, servaddr;// 创建TCP套接字listenfd Socket(AF_INET, SOCK_STREAM, 0);// 初始化服务器地址结构bzero(servaddr, sizeof(servaddr));servaddr.sin_family AF_INET;servaddr.sin_addr.s_addr htonl(INADDR_ANY); // 绑定所有接口servaddr.sin_port htons(SERV_PORT); // 服务端口号// 绑定与监听Bind(listenfd, (SA *)servaddr, sizeof(servaddr));Listen(listenfd, LISTENQ); // LISTENQ定义连接队列最大长度for (;;) {clilen sizeof(cliaddr);connfd Accept(listenfd, (SA *)cliaddr, clilen); // 阻塞等待连接// 并发处理if ((childpid Fork()) 0) { // 子进程Close(listenfd); // 子进程关闭监听套接字str_echo(connfd); // 处理客户端请求exit(0);}Close(connfd); // 父进程关闭已连接套接字} }关键点 INADDR_ANY允许服务器监听所有网络接口fork()实现并发处理父进程继续监听新连接子进程处理当前连接。 5.2.2 数据回射函数str_echo void str_echo(int sockfd) {ssize_t n;char buf[MAXLINE]; again:while ((n Read(sockfd, buf, MAXLINE)) 0)Writen(sockfd, buf, n); // 回射数据if (n 0 errno EINTR) // 处理中断goto again;else if (n 0)err_sys(str_echo: read error); // 包裹函数处理错误 }注意TCP是字节流协议需处理部分读写与粘包问题。 5.3 客户端程序实现 5.3.1 主函数框架 #include unp.hint main(int argc, char **argv) {int sockfd;struct sockaddr_in servaddr;if (argc ! 2)err_quit(usage: tcpcli IPaddress);// 创建TCP套接字sockfd Socket(AF_INET, SOCK_STREAM, 0);// 初始化服务器地址bzero(servaddr, sizeof(servaddr));servaddr.sin_family AF_INET;servaddr.sin_port htons(SERV_PORT);Inet_pton(AF_INET, argv[1], servaddr.sin_addr);// 发起连接Connect(sockfd, (SA *)servaddr, sizeof(servaddr));// 处理用户输入与服务器响应str_cli(stdin, sockfd); exit(0); }关键点 Connect触发三次握手需处理ETIMEDOUT超时和ECONNREFUSED拒绝连接等错误。 5.3.2 用户交互函数str_cli void str_cli(FILE *fp, int sockfd) {char sendline[MAXLINE], recvline[MAXLINE];while (Fgets(sendline, MAXLINE, fp) ! NULL) { // 读取标准输入Writen(sockfd, sendline, strlen(sendline)); // 发送至服务器if (Readline(sockfd, recvline, MAXLINE) 0) // 读取响应err_quit(str_cli: server terminated prematurely);Fputs(recvline, stdout); // 输出响应} }说明Readline需正确处理部分读与缓冲区管理参考第3章字节流处理。 5.4 并发服务器模型与僵尸进程处理 5.4.1 多进程模型的缺陷 僵尸进程子进程终止后未调用wait导致进程表中残留条目资源泄漏未关闭套接字可能耗尽文件描述符。 5.4.2 解决方案信号处理 void sig_chld(int signo) {pid_t pid;int stat;while ((pid waitpid(-1, stat, WNOHANG)) 0)printf(child %d terminated\n, pid);return; }// 主函数中注册信号处理 Signal(SIGCHLD, sig_chld); // 使用包裹函数处理信号作用捕获SIGCHLD信号回收子进程资源。 5.5 异常场景分析与处理 5.5.1 服务器主机崩溃 现象客户端read阻塞TCP持续重传数据最终返回ETIMEDOUT处理设置超时机制或使用心跳包检测连接状态。 5.5.2 服务器主机重启 现象客户端收到ECONNRESET错误处理重连机制或优雅终止程序。 5.5.3 客户端非正常终止 现象服务器子进程read返回0触发正常关闭流程处理确保close释放资源避免文件描述符泄漏。 5.6 测试与调试技巧 5.6.1 使用netstat监控连接状态 netstat -ant | grep 9999 # 查看端口9999的TCP连接状态输出示例 LISTEN监听状态ESTABLISHED已建立连接TIME_WAIT连接终止等待。 5.6.2 tcpdump抓包分析 tcpdump -i lo port 9999 # 监听本地回环接口的9999端口关键字段 SYN/ACK三次握手过程FIN四次挥手过程。 5.6.3 使用ps查看进程状态 ps -ef | grep tcpserv # 查看服务器进程状态状态说明 S睡眠状态等待I/OZ僵尸进程。 5.7 性能优化与扩展 5.7.1 线程池模型 pthread_t tid; pthread_attr_t attr; pthread_attr_init(attr); pthread_attr_setdetachstate(attr, PTHREAD_CREATE_DETACHED); // 线程分离 pthread_create(tid, attr, handle_client, (void *)connfd);优势避免频繁创建/销毁线程的开销。 5.7.2 I/O复用select/epoll 适用场景高并发连接减少进程/线程切换开销实现要点事件驱动模型非阻塞I/O。参见相关文章epoll函数使用实战详解 5.8 本章小结与进阶习题 小结本章通过Echo程序完整演示了TCP客户/服务器开发流程涵盖并发模型、异常处理与调试技巧为复杂网络应用开发奠定基础。 习题 实现UDP版本的Echo程序对比TCP/UDP编程差异修改服务器为线程池模型测试并发性能使用Wireshark分析TCP握手与挥手过程提交抓包分析报告。 付费用户专属资源 完整代码工程含Makefile与测试脚本TCP状态转换图矢量图扩展阅读《UNIX网络编程中的并发模型演进》。 通过本章学习读者将掌握TCP套接字编程的核心技术并具备开发高可靠性、高并发网络服务的能力。
http://www.pierceye.com/news/53421/

相关文章:

  • 垂直类门户网站wordpress用了什么框架
  • 外包做的网站 需要要源代码吗钦州做网站的公司
  • 网站建设的基本要素wordpress修改文字大小
  • 深圳网站建设q双赢世讯县总工会网站建设情况介绍
  • 文字域名可以做网站织梦怎么做手机网站
  • 网站内容有哪些wordpress获取分类标题
  • 网站如何搬家wordpress的交叉表单
  • 怎么关注网站 在手机上手机网站免费制作平台
  • 扁平化网站模板下载wordpress 反广告插件
  • 开锁换锁公司网站模板网站域名年费多少钱
  • xp系统建设网站腾讯云服务器centos做静态网站
  • 网站起域名原则企业微信电脑版
  • 怎么免费建立自己的网站平台培训机构课程设置
  • 旅游网站建设的摘要建立微网站
  • 定制网站建设哪家好页面跳转 英文
  • 广州网站建设公司怎么选南宁优化网站网络服务
  • 360提交入口网址seo确定关键词
  • 建设部网站1667号下载西安o2o网站设计公司
  • 云南城市建设职业学院spoc网站建一个网站需要多少钱?
  • 泰安市住房和城乡建设部网站网络会议有哪些软件
  • 网站素材免费如何创建网站站点
  • 什么网站做产品销售做的好做网站的技术盏
  • 复兴专业做网站手机怎么建网站链接
  • 建设通相似网站网络服务器系统是什么
  • 做防伪查询网站外贸网站制作哪家快
  • 企业建站源码系统建立一个网站的流程
  • 潍坊mip网站建设做商城网站怎么做
  • 网站排名优化教程网站建设 .影响力科技
  • 网站建设策划结构艾奇视觉网站建设
  • 淄博网站制作优化网站设计与网页制作心得体会