`
luliangok
  • 浏览: 816962 次
文章分类
社区版块
存档分类
最新评论

网络编程Server端 --- Linux版

 
阅读更多

之前我们已经编写了一个通用的Socket服务器端程序,我们现在增加对此类操作系统特性的一些code!

大家都知道fork() 只有在Unix/Linux类操作系统才有!因为他们没有线程这一说。他们只有子进程。

要用到fork那么就必须用到 waitpid() !

waitpid函数原型:

#include<sys/types.h> /* 提供类型pid_t的定义 */

#include<sys/wait.h>

pid_twaitpid(pid_tpid, int *status, int options);

参数pid=-1时,等待任何一个子进程退出,没有任何限制,此时waitpid和wait的作用一模一样。

参数 status我们设置为NULL。

参数options提供了一些额外的选项来控制waitpid,WNOHANG常量表示,即使没有子进程退出,它也会立即返回,不会像wait那样永远等下去。

我们希望只有给waitpid()信号时,才使用它!

这时,我们需要另外一个函数sigaction()。

sigaction函数原型:

#include<signal.h>

int sigaction(int signum, const struct sigaction *act, struct sigaction *oldact);

参数 signum=SIGCHLD时,只有子进程停止或者退出才进行调用。

参数 act是一个指向sigaction结构的指针。

参数 oldact一般废止不用。

我们主要设置结构sigaction的sa_handler、sa_mask和sa_flags三个成员变量即可!

下面是示例:


End.


分享到:
评论

相关推荐

    serverjre-9.0.4_linux-x64_bin.tar.zip

    【标题】"serverjre-9.0.4_linux-x64_bin.tar.zip" 提供的是适用于Linux操作系统的Java Development Kit(JDK)版本9.0.4的服务器级运行时环境(Server JRE)。这个文件是通过.tar.gz格式进行打包压缩的,这在Linux...

    linux平台网络编程(TCPip)

    ### Linux平台网络编程(TCP/IP) #### 知识点概览 1. **网络基础知识** - 网络的历史与发展。 - OSI七层模型的解析。 - Internet体系模型的理解。 - 客户/服务器模型的运作机制。 2. **Linux/Unix系统背景**...

    网络编程聊天室--操作演示文档

    在本文中,我们将深入探讨如何在Linux环境下使用C语言实现一个聊天室程序,这是一个非常实用的网络编程项目,可以帮助我们理解TCP/IP通信、多线程处理以及并发控制等核心概念。我们将按照描述中的步骤,逐步解析这个...

    Linux网络编程PPT和源码

    Linux网络编程是IT领域中的一个重要话题,特别是在服务器端开发、分布式系统和云计算环境中。这个主题主要涉及如何在Linux操作系统上利用TCP/IP协议栈进行网络应用的开发。标题提及的"Linux网络编程PPT和源码"是针对...

    Linux网络编程示例,TCP和UDP

    在IT领域,网络编程是构建分布式系统和网络应用的基础,特别是在服务器端开发中。Linux操作系统因其开源、稳定和强大的网络支持而备受青睐。本压缩包文件聚焦于Linux环境下的网络编程,主要涉及TCP(传输控制协议)...

    Linux 网络编程——TCP编程示例代码

    在Linux系统中,网络编程是开发跨平台应用和服务的关键技术之一。TCP(Transmission Control Protocol)是一种面向连接的、可靠的传输协议,广泛应用于互联网中的各种服务,如HTTP、FTP等。本篇文章将深入探讨Linux...

    Socket网络编程学习笔记之---使用线程池提高性能

    - Server端:创建ServerSocket监听端口,接收到连接请求后,不直接创建新线程,而是将处理客户端的任务封装为Runnable对象,提交给线程池。 - Client端:模拟多个客户端发起连接请求,测试服务器的并发处理能力。 - ...

    一步一步教你学linux网络编程

    Linux网络编程是操作系统中一个重要的领域,涉及到网络通信的基础知识,特别是对于开发服务器端应用程序的开发者来说至关重要。本文将引导初学者逐步理解Linux环境下的网络编程,主要关注于使用套接口(Socket)进行...

    基于UDP协议的Client/Server linux网络编程

    【标题】:“基于UDP协议的Client/Server Linux网络编程” 在计算机网络中,UDP(User Datagram Protocol,用户数据报协议)是一种无连接的传输层协议,它提供了比TCP(Transmission Control Protocol,传输控制...

    linux网络编程-tcp获取时间

    在Linux系统中,网络编程是实现跨机器通信的关键技术,特别是TCP协议,它提供了一种可靠的、基于连接的传输方式。本示例中,我们有两个文件,一个作为服务器端,另一个作为客户端,它们用于实现通过TCP协议从服务器...

    Linux下网络编程

    在Linux系统中,网络编程是构建分布式应用的关键技术之一,主要涉及的是进程间通信(IPC)中的套接字...学习Linux下的TCP网络编程,不仅有助于理解网络通信的基本原理,也是开发服务器端应用和网络工具的基础技能。

    linux网络编程-客户端与服务器端异步通信,fcntl,accept

    在Linux系统中,网络编程是实现跨机器通信的关键技术,主要涉及客户端与服务器端的交互。本主题将深入探讨客户端与服务器之间的异步通信,以及如何利用`fcntl`和`accept`这两个重要的函数来实现这一目标。 首先,...

    client-and-server.rar_linux qt tcp client_webserver Qt_网络协议编程

    在Linux平台上移植Web服务器,你需要了解操作系统层面的网络编程接口,例如套接字(socket)API。这是编写网络应用程序的基本接口,它允许程序员创建、配置、连接和发送/接收数据。Web服务器的工作原理通常包括监听...

    linux-TCP.rar_LINUX TCP _Linux 网络 编程_linux c_linux tcp传输_tcp lin

    标题中的“Linux TCP”指的是在Linux操作系统环境下进行TCP(Transmission Control Protocol)网络编程。TCP是互联网协议栈中的一种面向连接的、可靠的、基于字节流的传输层通信协议。在这个主题下,我们主要探讨...

    linux c 网络编程 select例子

    总结来说,通过`server.c`和`client.c`这两个文件,初学者可以学习如何在Linux C环境中使用`select`函数进行网络编程,理解服务器如何监听并处理客户端的请求,以及客户端如何与服务器建立连接并进行数据交换。...

    linux-c++ socket编程

    对于想要学习网络编程或者提升这方面技能的开发者来说,这是一个很好的起点。通过深入研究和实践,你可以掌握更多关于socket编程的高级概念,如多线程、异步I/O模型(如epoll)和更复杂的网络协议。

    linux网络编程-源代码&课件.zip

    Linux网络编程是一个深入探讨如何在Linux操作系统环境下设计和实现网络应用程序的主题。这个主题涵盖了网络协议、套接字接口、多线程编程、并发处理、I/O复用模型、信号处理、错误处理等多个方面。源代码和课件的...

    unix网络编程.pdf

    在UNIX网络编程中,通常将进行通信的一方称为客户端(client),另一方称为服务器端(server)。 描述中提到的书籍被认为是一本非常不错的网络编程参考书,且希望它对读者有所帮助。书籍面向的读者可能包括初学者到...

    学习linux网络编程的时候自己做的简单ftp

    在学习Linux网络编程的过程中,构建一个简单的FTP(File Transfer Protocol)服务器和客户端是常见的实践项目。FTP是一种标准的网络协议,用于在Internet上在不同主机之间传输文件。在这个项目中,我们将探讨FTP的...

    socket_linux-socket网络编程详解_

    本文将深入探讨Linux下的Socket网络编程,主要使用C语言进行讲解。 一、Socket基本概念 Socket在网络编程中扮演着核心角色,它是进程间的通信端点,提供了在互联网上不同计算机间进程通信的接口。在Linux中,Socket...

Global site tag (gtag.js) - Google Analytics