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 }

 

本文转自博客园xingoo的博客,原文链接:TCP客户机-服务器,如需转载请自行联系原博主。

时间: 2024-07-29 07:53:06

TCP客户机-服务器的相关文章

如何编写Linux下的客户机/服务器软件

Linux以其源代码公开闻名于世,并以其稳定性和可靠性雄霸操作系统领域,在网络应用技术方面使用得更加广泛.很久以来它就是Windows的重要对手之一.随着网络时代的来临,Linux的这种优势已变得更加突出.本文将论述如何在Linux环境下利用Socket实现客户机/服务器通信. 随着网络技术的发展,网络结构已从过去的主机/终端型.对等型发展到现在广为使用的客户机/服务器型.客户机/服务器模型应用十分广泛,在Internet上WWW,E-mail,FTP等都是基于这种模型的.在面向连接的通信模式下

简单的客户机服务器投射模拟

下面模拟了,简单的客户机服务器投射模拟的过程.客户机像服务器发送数据,服务器接受到数据后,发送回给客户机.再由客户机打印出来. 需要的函数: 网络方面 服务器 socket(AF_INET,SOCK_STREAM,0); AF_INET表示IPV4,SOCK_STREAM表示基于字节流的,0表示协议由前面两个参数组合而成.返回描述符 bind(sockdf,(struct sockaddr*)servaddr,sizeof(servaddr)); 用于把描述符与本地协议地址联系起来. liste

一个简单的服务器和客户机程序

这个例子将以最简单的方式运用套接字对服务器和客户机进行操作.服务器的全部工作就是等候建立一个连接,然后用那个连接产生的Socket创建一个InputStream以及一个OutputStream.在这之后,它从InputStream读入的所有东西都会反馈给OutputStream,直到接收到行中止(END)为止,最后关闭连接. 客户机连接与服务器的连接,然后创建一个OutputStream.文本行通过OutputStream发送.客户机也会创建一个InputStream,用它收听服务器说些什么(本

c/s-基于C/S,B/S编程,,,客服机/服务器,浏览器/服务器不理解

问题描述 基于C/S,B/S编程,,,客服机/服务器,浏览器/服务器不理解 那基于B/S,C/S编程,编程实现的是什么?是实现一个网页的制作和窗口界面的设计么,如果不是,那C/S,B/S的作用又是什么 解决方案 C/S的就像你用的QQ软件,它的数据是交给服务器处理的. B/S就像你浏览的CSDN网站,你打开浏览器输入CSDN网站地址后可以访问.它的数据也是交给服务器处理的. 上面只是两个具体的例子,它们的范围也是很广的,你项目做多了自然而然就明白了 解决方案二: c?s一般是socket通信,用

用JAX-RPC构建RPC服务和客户机:使用Java API构建基于RPC的Web服务(一)

简介:远程过程调用(RPC)是基于 Simple Object Access Protocol(SOAP)或 Representational State Transfer(REST)的现代 Web 服务的前身.因为所有 Java 平台的 Web 服务 API 都构建 在从 RPC 引入的概念之上,所以要想用 Java 语言编写有效且高效的 Web 服务,理解 Java API for XML-Based RPC(JAX-RPC)几乎是必需的.本教程讲解如何获取.安装和配置 JAX-RPC 并构

使用 Linux 瘦客户机实现云计算--基于 Linux 的云计算系统有益于用户和环境

从 Linux® 的角度探讨云计算,并发现一些最新颖.最流行的基于 Linux 的解决方案 -- 特别关注一些可以带来环境效益的选择. 我们已经在大量场合中从不同的角度讨论了云计算.对于嵌入式 Linux 工程师和爱好者,云计算的一个令人兴奋的方面就是它在瘦客户机上的应用. 云计算的一个基本概念就是利用通过 Internet 得到的资源.通过综合功能有限的客户机,云计算在很大程度上类似于借助 LAN 的客户机-服务器计算,使用了哑(dumb)终端或曾经十分流行的瘦客户机.("瘦" 的含

云与瘦客户机 未来IT数据安全延续

本文讲的是云与瘦客户机 未来IT数据安全延续,[IT168 资讯]所有的人都不能否认,云计算是未来IT业发展的大趋势之一,这样的趋势给了另一技术的发展空间--瘦客户机技术.IT技术发展的成果"云计算"和金融危机给世界经济带来的挑战,是瘦客户机在蛰伏30年后有望走入主流的两大决定性因素.用户有一天只要买个瘦客户端设备就可以操作所有的计算和存储应用.由此,瘦客户机被"云"卷进了新一轮IT应用中来.  云计算作为一个基本技术概念就是利用通过Internet得到的资源.通过

服务器和客户机是怎样连接的

2.3.1 服务器如何连接客户机    (1)出现如图2.34所示的[欢迎使用]界面.    (2)出现如图2.35所示的[监听程序配置,监听程序]界面.    (3)出现如图2.36所示的[监听程序配置,选择监听程序]界面.    (4)出现如图2.37所示的[监听程序配置,选择协议]界面.    (5)出现如图2.38所示的[监听程序配置,TCP/IP协议]界面.    (6)出现如图2.39所示的[监听程序配置,更多的监听程序]界面.2.3.2 客户机怎样连接服务器    管理客户机的工作

客户机程序1—连接到MYSQL服务器

    6.2 客户机程序1-连接到服务器     我们的第一个MySQL客户机程序很简单:连接到服务器.断开,并退出.它本身并不是非常有用,但是必须知道如何做它,因为实际上用MySQL数据库做任何事情都必须与服务器连接.这是一个公用的操作,开发创建连接的代码是编写每个客户机程序都将使用的代码.除此之外,这项任务带给我们一些简单开始的事情.以后,我们可以增加这个客户机来做一些更有用的事情.我们第一个客户机程序的源代码突Щ绦?,包括一个单独的文件, client.c:    这个源文件以包括s