热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

计算机网络编程6,计算机网络网络编程课件计算机网络II(6).pdf

计算机网络II张淼计算机学院ItistimetowritesimpleCSprogram-server2Cont.3Cont.4Cont.5Client6Cont.7Result8

计算机网络II

张淼

计算机学院

It is time to write simple C/S program-server

2

Cont.

3

Cont.

4

Cont.

5

Client

6

Cont.

7

Result

8

fgets

stdin writen read

TCP TCP

stdout client readline writen server

fputs

1. 1. 客户从标准输入读入一行文本客户从标准输入读入一行文本,,并写回服务器并写回服务器

2. 服务器从网络输入读入这行文本,并回射给客

3. 客户从网络输入读入这行回射文本,并显示在

标准输出.

9

多进程并发服务器

 父进程主要用于获取客户端连接父进程主要用于获取客户端连接((不与客户端直接不与客户端直接

通信通信))

 对于新的连接对于新的连接forkfork一个新的子进程进行处理一个新的子进程进行处理

父子进程避免使用对方的父子进程避免使用对方的socketsocket

多进程并发服务器

#include

pid_t fork(void);

Returns: 0 in child, process ID of child in parent, -1 on error

 对于对于forkfork

 子进程复制父进程的所有进程内存到其内存地址空间子进程复制父进程的所有进程内存到其内存地址空间子进程复制父进程的所有进程内存到其内存地址空间子进程复制父进程的所有进程内存到其内存地址空间

中中。。父父、、子进程的子进程的 ““数据段数据段””,, ““堆栈段堆栈段””和和 ““代码代码

段段””完全相同完全相同,,即子进程中的每一个字节都和父进程即子进程中的每一个字节都和父进程

一样一样

 子进程的当前工作目录等环境变量和父进程相同子进程的当前工作目录等环境变量和父进程相同,,

forkfork之前父进程打开的文件描述符之前父进程打开的文件描述符,,在子进程中同样在子进程中同样

打开打开

 子进程拥有自己的进程子进程拥有自己的进程IDID

程序的并发版本

intint main(main(intint argcargc, char *, char *argvargv[]) {[]) {

fork();fork();

printfprintf("Hello! ");("Hello! ");

return 0;return 0;

}}}}

 输出输出::

HelloHello

HelloHello

程序的并发版本

intint mai



推荐阅读
  • 为什么即使Linux服务器的socket关闭,客户端仍能调用一次send函数?
    要弄清这个问题,首先需要知道调用send()发送数据时,发生了什么。当调用send()发送数据时,并不是直接将数据发送到网络中,而是先将待发送的数据放到socket发送缓冲区中,然 ... [详细]
  • 本文讨论了clone的fork与pthread_create创建线程的不同之处。进程是一个指令执行流及其执行环境,其执行环境是一个系统资源的集合。在调用系统调用fork创建一个进程时,子进程只是完全复制父进程的资源,这样得到的子进程独立于父进程,具有良好的并发性。但是二者之间的通讯需要通过专门的通讯机制,另外通过fork创建子进程系统开销很大。因此,在某些情况下,使用clone或pthread_create创建线程可能更加高效。 ... [详细]
  • Nginx使用(server参数配置)
    本文介绍了Nginx的使用,重点讲解了server参数配置,包括端口号、主机名、根目录等内容。同时,还介绍了Nginx的反向代理功能。 ... [详细]
  • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
  • Linux环境变量函数getenv、putenv、setenv和unsetenv详解
    本文详细解释了Linux中的环境变量函数getenv、putenv、setenv和unsetenv的用法和功能。通过使用这些函数,可以获取、设置和删除环境变量的值。同时给出了相应的函数原型、参数说明和返回值。通过示例代码演示了如何使用getenv函数获取环境变量的值,并打印出来。 ... [详细]
  • 本文介绍了PE文件结构中的导出表的解析方法,包括获取区段头表、遍历查找所在的区段等步骤。通过该方法可以准确地解析PE文件中的导出表信息。 ... [详细]
  • 开发笔记:实验7的文件读写操作
    本文介绍了使用C++的ofstream和ifstream类进行文件读写操作的方法,包括创建文件、写入文件和读取文件的过程。同时还介绍了如何判断文件是否成功打开和关闭文件的方法。通过本文的学习,读者可以了解如何在C++中进行文件读写操作。 ... [详细]
  • linux进阶50——无锁CAS
    1.概念比较并交换(compareandswap,CAS),是原⼦操作的⼀种,可⽤于在多线程编程中实现不被打断的数据交换操作࿰ ... [详细]
  • 最大子序列和(maxsum)【问题描述】输入一个长度为n的整数序列(A1,A2,……,An),从中找出一段连续的长度不超过M的子序列,使得这个序列的和最大。例如:序列1,-3,5 ... [详细]
  • 796.[APIO2012]派遣在一个忍者的帮派里,一些忍者们被选中派遣给顾客,然后依据自己的工作获取报偿。在这个帮派里,有一名忍者被称之为Master。 ... [详细]
  • 题目描述Takuru是一名情报强者,所以他想利用他强大的情报搜集能力来当中间商赚差价。Takuru的计划是让Hinae帮他去市场上买一个商品,然后再以另一个价格卖掉它。Takur ... [详细]
  • DescriptionclickmeSolution套路的状压期望DP题。。。考虑倒退期望:设fi,jrolepresentationstyleposi ... [详细]
  • 题面传送门Solution看到什么最大值最小肯定二分啊。check直接跑一个二分图匹配就好了。orzztl!!!代码实现*mail:mle ... [详细]
  •   并查集是一种群众喜闻乐见的数据结构,其复杂度是数据结构中最奇葩的之一了,Tarjan证明其为阿克曼函数的反函数,在可以想象(不全面的解释啊)的范围内小于等于3。。。我们就把它当做O(1)吧。下面通 ... [详细]
  • MySQL数据库锁机制及其应用(数据库锁的概念)
    本文介绍了MySQL数据库锁机制及其应用。数据库锁是计算机协调多个进程或线程并发访问某一资源的机制,在数据库中,数据是一种供许多用户共享的资源,如何保证数据并发访问的一致性和有效性是数据库必须解决的问题。MySQL的锁机制相对简单,不同的存储引擎支持不同的锁机制,主要包括表级锁、行级锁和页面锁。本文详细介绍了MySQL表级锁的锁模式和特点,以及行级锁和页面锁的特点和应用场景。同时还讨论了锁冲突对数据库并发访问性能的影响。 ... [详细]
author-avatar
何俊雨_127
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有