TCP客户机-服务器
时间:2022-04-22
本文章向大家介绍TCP客户机-服务器,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
1 僵尸进程
2 信号处理
信号:
1 由一进程发往另一进程
2 由内核发往某进程
僵尸状态:
父进程取回子进程的相关信息,进程的ID,终止状态,子进程的资源利用信息
编程时:
1 当派生子进程时,必须捕获信号SIGCHLD
2 当捕获信号时,必须处理被中断的系统调用
3 SIGCHLD的信号处理程序必须正确编写,使用函数waitpid以免留下僵尸进程
1 int main(int argc,char **argv){
2 int listenfd,connfd;
3 pid_t childpid;
4 socklen_t clilen;
5 struct sockaddr_in cliaddr,servaddr;
6 void sig_chld(int);
7
8 listenfd = Socket(AF_INET,SOCK_STREAM,0);
9
10 bzero(&servaddr,sizeof(servaddr));
11 servaddr.sin_family = AF_INET;
12 servaddr.sin_addr.s_addr = htol(INADDR_ANY);
13 servaddr.sin_port = htons(SERV_PORT);
14
15 Bind(listenfd,(SA *)&servaddr,sizeof(servaddr));
16 Listen(listendfd,LISTENQ);
17 Signal(SIGCHLD,sig_chld);
18 for(;;){
19 clilen = sizeof(cliaddr);
20 if((connfd = accept(listenfd,(SA *)&cliaddr,&clilen)) < 0){
21 if(errno == EINTR)
22 continue;
23 else
24 err_sys("accept error");
25 }
26 if((childpod = Fork()) == 0){
27 Close(listenfd);
28 str_echo(connfd);
29 exit(0);
30 }
31 Close(connfd);
32 }
33 }
- 多线程编程:多线程并发制单的开发记录【一】
- 如何使用线程锁来提高多线程并发效率
- 如何在分布式环境中同步solr索引库和缓存信息
- 如何在分布式环境中同步solr索引库和缓存信息
- Info模式下的隐形杀手(SpringMVC同时使用<mvc:resources.../>和FormattingConversionServiceFactoryBean时出现的问题)
- 关于web.xml3.0启动报错
- [机器学习]-[数据预处理]-中心化 缩放 KNN(一)
- 信息安全不可或缺应用交付 还需安全交付
- 一张图带你看懂区块链项目生态
- python环境的安装
- python爬虫抓取网易云音乐歌词
- 区块链学堂——“遇见”拜占庭将军
- NVIDIA把消费级显卡拒绝在数据中心门外
- 保护好手中的比特币,比特币诈骗又见新花样!
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法