1、图书管理系统以UNIX系统文件部分系统调用为基础设计一个简易的图书管理系统。
要求实现:图书的录入、查询、借阅、清理、统计等功能、还要实现对每天的借阅情况进行统计并打印出统计报表,操作界面要尽量完善。
图书资料信息必须保存在文件中。
2、信号通信与进程控制(l)进程的创建:编写一段程序,使用系统调用fork()创建两个或多个子进程。
当此程序运行时,在系统中有一个父进程和其余为子进程在活动。
(2)进程的控制:在程序中使用系统调用lockf()来给每一个进程加锁,实现进程之间的互斥。
(3)进程通信:①软中断通信;
②在程序中使用实例signal(SIGINT,SIG_IGN)和signal(SIGQUIT,SIG_IGN)进行通信操作,观察执行结果,并分析原因。
(4)软中断的捕获与重定义。
首先定义一个服务函数function(),然后利用signal(sig,function)系统调用来实现中断的捕获与改道。
(5)使用操作系统保留给用户的信号SIGUSR1和SIGUSR2进行通信。
(6)扩展程序,使之成为信号或事件驱动的应用程序。
3、管道通信利用UNIX系统提供的管道机制实现进程间的通信。
(1)管道通信。
利用pipe()和lockf()系统调用,编写程序,实现同族进程间的通信。
使用系统调用pipe()建立一条管道线;
创建子进程P1、P2、…。
子进程Pi分别向管道各写信息,而父进程则从管道中读出来自于各子进程的信息,实现进程家族间无名管道通讯。
扩展之,使之成为客户/服务器模式,并完成一定的任务(自己定义)。
(2)命名管道通信:利用mkfifo(name,mode)或mknod(name,mode,0)创建一个命名管道,然后利用它和文件部分系统调用实现不同进程间的通信。
改造之,使之成为客户/服务器模式,并完成一定的任务(自己定义)。
4、进程间通信(IPC):消息机制(1)消息的创建、发送和接收使用系统调用msgget(),msgsnd(),msgget(),及msgctl()编制一长度为1K的消息发送和接收的程序。
1)为了便于操作和观察结果,用一个程序作为“引子”,先后fork()两个子进程,SERVER和CLIENT,进行通信。
SERVER和CLIENT也可分别为2个各自独立的程序。
2)SERVER端建立一个Key为175的消息队列,等待其他进程发来的消息。
当遇到类型为1的消息,则作为结束信号,取消该队列,并退出SERVER。
SERVER每接收到一个消息后显示一句“(server)received”。
3)CLIENT端使用key为175的消息队列,先后发送类型从10到1的消息,然后退出。
最后的一个消息,即是SERVER端需要的结束信号。
CLIENT每发送一条消息后显示一句“(client)sent”。
4)父进程在SERVER和CLIENT均退出后结束。
(2)功能扩展:在sever端创建一个服务函数,从而实现C/S通讯要求SERVER每接收到一次数据后不仅仅显示“(server)received”,而是做一些其它事情,比如读取或查询某个文件,或者执行一个shell命令等。
此功能可由设计者自己定义。
在此基础上可以扩展客户端,比如设计一个菜单界面,接收不同的选项,并发送到服务器端,请求对方提供服务。
5、进程间通信(IPC):共享内存机制(1)共享存储区的创建,附接和断接使用系统调用shmget(),shmat(),msgdt(),shmctl(),编制一长度为1K的消息发送和接收的程序。
1)为了便于操作和观察结果,用一个程序作为“引子”,先后fork()两个子进程,SERVER和CLIENT,进行通信。
SERVER和CLIENT也可分别为2个各自独立的程序。
2)SERVER端建立一个Key为375的共享区,并将第一个字节置为-1,作为数据空的标志,等待其他进程发来的消息。
当该字节的值发生变化时,表示收到了信息,并进行处理。
然后再次把它的值设为-1。
如果遇到的值为0,则视为结束信号,取消该队列,并退出SERVER。
SERVER每接收到一次数据后显示“(server)received”。
3)CLIENT端建立一个Key为375的共享区,当共享取得第一个字节为-1时,SERVER端空闲,可发送请求。
CLIENT随即填入9到0。
期间等待Server端的再次空闲。
进行完这些操作后,CLIENT退出。
CLIENT每发送一次数据后显示“(client)sent”。
4)父进程在SERVER和CLIENT均退出后结束。
(2)功能扩展:在sever端创建一个服务函数,从而形成C/S通讯模式要求SERVER每接收到一次数据后不仅仅显示“(server)received”,而是做一些其它事情,比如
2024/7/19 3:04:26 918KB 操作系统
1
一个服务器和可运行多个客户端学习专用利用同步TCP和BinaryReader对象及BinaryWriter对象编写一个基于Windows窗体的同步TCP网络聊天程序,实现如下功能:① 任何一个客户均可以与服务器进行通信。
② 服务器要能显示客户端连接的状态,当客户端连接成功后,要及时告诉客户端已经连接成功的信息,并将当前在线的所有客户告知该客户端。
③ 客户和服务器建立连接后,既可以通过服务器和任何一个在线的其他客户聊天。
④ 不论客户何时退出程序,服务器都应做出正确判断,同时将该客户是否在线的情况告诉其他所有在线客户。
2024/7/18 18:30:53 89KB c# 聊天
1
ZigBee程序的代码注释,主要帮助初学者更好的理解程序的流程的函数的作用。
2024/7/18 3:48:06 5.27MB zigbee 程序注释
1
随着天线技术的发展,对UHFRFID可用于金属物体的标签天线的研究成为了热点和难点。
根据当前标签天线的设计特点和设计原则,设计出一种适用于845~960MHz的宽频带可用于金属物体的新型标签天线,并通过仿真分析与计算确定了天线的一些重要参量,实现了标签天线输入阻抗能在较大范围内与更多阻抗不同的标签芯片进行匹配。
实测结果与仿真结果基本一致,抗金属性能稳定,天线尺寸较小,通信距离较远。
1
android与c++通过socket通信vc6.0开发环境android与c++通过socket通信vc6.0开发环境android与c++通过socket通信vc6.0开发环境
2024/7/16 18:06:04 4.11MB android c++ socket
1
Java网络编程多人聊天室Socket通信多线程课程设计,基于UDP通信,用户数据包,用户在主界面进行人员管理,可添加聊天人员,保证干货----明亮出品
2024/7/16 13:45:43 14KB Java 网络编程
1
多智能体系统仿真,带通信延迟的,这为第二部分,一一部分在另一个文件中,分两个因为懒得打包。
看不懂话要网络拓扑图的可以留言。
备注:CSDN老是加积分,这点很生气。
我设的积分不多,如果没积分的话,直接和我说,给不给看心情,但不要说谎,下载明细我看的到的,积分不够的时候,我也用淘宝买过订单下过文件。
真诚交流,拒绝借口!
2024/7/16 10:28:28 1KB 多智能
1
电子商务系统简要介绍北邮大三上学期C++课程设计(2)C++课程设计作业。
实现了超市购物和银行存取款两个部分。
主要使用C++完成,基于Qt的图形化界面,使用SQLite作为数据库,涉及了基本的select、delete等语法。
两个程序(Store和Bank)之间通过Socket通信,使用TCP协议。
数据结构设计了银行账户类account,以及具有继承关系的商品类product以及它的子类们书籍类book、食品类food等等。
数据库为账户信息、商品信息和购物车设置了表accountInfo、productInfo和cart。
通过商品id将productInfo和accountInfo相关联,通过账户名将accountInfo和cart关联起来。
Socket通信使用了Qt内置的类QtTcpSocket,通过在银行设置QTcpServer作为服务器端,在商店设置QTcpSocket作为客户端,当用户购买物品结算时,商店向银行发出请求进行验证,验证成功则银行扣款,商店确认订单。
2024/7/16 7:52:18 110KB 电子商务系统 超市 电商 课程设计
1
androidcamerahal到kerneldriver通信
2024/7/16 0:22:37 345KB debug
1
本书介绍正交频分复用(OFDM)技术的原理及其在无线通信领域内的应用。
全书共分10章。
第1章简要介绍无线通信系统的发展历程以及无线衰落信道的基本特性;
第2章介绍OFDM技术的基本原理与特性;
第3章叙述了OFDM技术内峰值平均功率比的问题,并且讨论若干抑制过高峰均比的方法;
第4章详细介绍OFDM技术内非常关键的同步问题;
第5章介绍OFDM技术内的信道估计;
第6章针对动态功率、比特分配在OFDM系统内的灵活应用进行讨论;
第7章介绍各种编码在OFDM技术内的应用,并且讨论最新的编码方法;
第8章分析多种不同的多址方案与OFDM技术的结合;
第9章详细介绍OFDM在多个领域内的应用,其中包括DAB、DVB、WLAN和ADSL等;
最后第10章简单介绍未来移动通信系统(NextG)的关键概念,以及适于传输高速数据流的MIMOOFDM系统。
  本书可作为通信工程技术人员和通信专业的本科生、研究生的参考书。
2024/7/15 20:10:04 14.49MB OFDM移动通信技术原理与应用 经典
1
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡