近来有许多大富翁朋友提出“如何在局域网内多播稳定传送大文件”的问题,为此我做了这个小程序供大家参考。
我的思路:传送文件有很多方法,我看到的大富翁上的朋友说过,用udp的方式不能稳定传送大文件,故我决定采用TCPIP方式。
同时考虑到速度,我提供了多线程创送的方式。
程序包中有两个文件夹:1)接收程序;
2)发送程序以下操作说明是针对单机操作的:1)将任意一个文件命名为“测试例子.rar”,然后放在发送程序目录下;
或者启动发送程序后再选择2)启动接收程序目录下的Server.exe程序3)启动发送程序目录下的MultiThreadDemo.exe程序4)在MultiThreadDemo.exe程序中,从“SynchronizationMethod”GroupBox中选择一种同步方法注意!!!!在单机操作时,只能选择Mutex方式5)在MultiThreadDemo.exe程序中,点击“创建同步对象”Button6)在MultiThreadDemo.exe程序中,点击“传送文件”Button7)传送完毕后,到接收程序目录下查看能否收到“测试例子.rar”针对局域网的操作,我没有做测试,以下是几点说明:1)自行修改“传送文件”Button的OnClick事件2)注意往不同的机子传送时,要为线程中的私有变量设置相应的IP地址和端口,同时将Server.exe拷贝到这台机子上3)可以进行异步创送,即NoSynchronization和Semaphore方式读者如果想使用该例子,建立进一步完善传送过程中的容错处理。
这是个demo程序,难免会有许多bug,希望读者原谅,同时把发现的问题和更好的思路发email给我。
黄晓斌hxb_leiyuan2000@163.net
2017/9/24 1:35:49 879KB DELPHI 下载 源代码 网络通信类
1
根据题目中描述的助教和学生的行为需要两类线程program和student其中助教的活动有编程和睡觉两个事件学生有等待和编程两个事件走廊上有三个椅子上面坐着等待的学生学生到后需判断有没有空闲的椅子助教决定要教学或睡觉时也要判断椅子上有没有学生所以助教和学生之间的关系表现为: (1)助教和学生之间的同步关系:当助教睡觉时学生进来需要唤醒助教当有学生时助教教其编程没有的时候助教睡觉 (2)助教和学生之间的互斥关系:由于每次助教只能帮一个学生且可供等待的椅子只要3把即助教和椅子是临界资源所以学生之间是互斥关系 (3)引入三个信号量和一个控制变量: 控制变量waiting用来记录等待的学生数初值为0;
信号量students用来表示等待的学生初值为0;
信号量ta用来表示助教初值为1;
信号量mutex用于互斥初值为1;
">根据题目中描述的助教和学生的行为需要两类线程program和student其中助教的活动有编程和睡觉两个事件学生有等待和编程两个事件走廊上有三个椅子上面坐着等待的学生学生到后需判断有没有空闲的椅子[更多]
2015/8/19 8:41:47 1KB Linux 多线程 理发师问题
1
利用互斥锁和计数信号完成生产者消费者问题一组生产者进程和一组消费者进程共享一个初始为空、大小为n的缓冲区,只有缓冲区没满时,生产者才把消息放入到缓冲区,否则必须等待;
只有缓冲区不空时,消费者才能从中取出消息,否则必须等待。
由于缓冲区是临界资源,它只允许一个生产者放入消息,或者一个消费者从中取出消息。
生产者和消费者对缓冲区互斥访问是互斥关系,同时生产者和消费者又是一个相互协作的关系,只有生产者生产之后,消费者才能消费,他们又是同步关系。
信号量设置:信号量mutex作为互斥信号量,它用于控制互斥访问缓冲池,互斥信号量初值为1;
信号量full用于记录当前缓冲池中“满”缓冲区数,初值为0。
信号量empty用于记录当前缓冲池中“空”缓冲区数,初值为n。
主函数担任接收参数,初始化信号量,创建生产者线程,创建消费者线程,睡眠一段时间后,结束程序
2019/4/24 15:34:27 2KB Linux 生产者消费者
1
1。
生产者消费者问题(信号量+mutex)参考教材中的生产者消费者算法,创建5个进程,其中两个进程为生产者进程,3个进程为消费者进程。
一个生产者进程试图不断地在一个缓冲中写入大写字母,另一个生产者进程试图不断地在缓冲中写入小写字母。
3个消费者不断地从缓冲中读取一个字符并输出。
为了使得程序的输出易于看到结果,仿照阅读材料中的实例程序,分别在生产者和消费者进程的合适的位置加入一些随机睡眠时间。
可选的实验:在上面实验的基础上实现部分消费者有选择地消费某些产品。
例如一个消费者只消费小写字符,一个消费者只消费大写字母,而另一个消费者则无选择地消费任何产品。
消费者要消费的产品没有时,消费者进程被阻塞。
注意缓冲的管理。
2。
用信号量和mutex方式实现睡觉的理发师问题3。
读者写者问题教材和相关的阅读材料中对读者写者问题算法均有描述,但这个算法在不断地有读者流的情况下,写者会被阻塞。
编写一个写者优先处理读者写者问题的程序,其中读者和写者均是多个进程,用信号量作为同步互斥机制。
2020/5/8 2:40:50 11.43MB 操作系统 实验 进程 线程
1
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡