毕业设计的问题~~~~
我的毕业设计是用socket(要求不能用CSocket类派生)做一个文件传输工具。分为“接收端”和“发送端”。“接收端”监听网络,然后“发送端”向一个已经开始监听网络的“接收端”发送文件,文件传输的socket连结是在线程中动态建立的!而不像网上很多源代码是,事先让“接收端”和“发送端”建立连结,文件传输只限于这两台计算机之间。我的设计是可以让“接收端”同时接收不同发送端发送过来的文件;“发送端”也可以同时向不同的接收端发送文件。
我想做成多线程的,就像FlashGet那样,可以同时传输多个文件(多线程);可以对每一个传输中的文件进行:“开始”、“暂停(包括文件断点续传)”、“停止”、“删除”这些基本的操作。
目前我已经实现了传输功能,可是我不知道怎么“停止”文件的传输。也就是说,我现在的做出来的程序,一旦文件开始传输,就失去了对文件的控制,不能使文件传输停止。但是文件传输不会出错(局域网内)。
在网上找了很多的源代码来看,但都是单线程的(单线程中停止传输很好实现)。自己写出这里也停下来了。我为每一个传输文件写一个线程,但仅仅用多线程实现了传输的功能。而对于其他的功能比如:“暂停(包括文件断点续传)”、“停止”,却不知道怎样在各个线程中控制。因为我不知道怎样,在传输线程和主线程(程序线程)之间交换数据,怎样管理我建立起来的那些文件传输的线程。我只是想做得看上去像FlashGet那样。
总的说来,我遇到的棘手的问题就是:怎样在多线程中控制文件的传输????
还有我并没有创建自己的socket类,也没有派生CSocket类!请高手指点迷失的我~~~~
问题点数:0、回复次数:4Top
1 楼lit_river(小河)回复于 2004-05-02 20:35:16 得分 0
你的thread可以从CThread派生,
由主窗口向线程发送消息,postthreadmessage(....)Top
2 楼madhappy(545454)回复于 2004-05-02 21:21:45 得分 0
最简单的办法是用全局变量。但是要用好互斥工具。Top
3 楼truewq(aibieli)回复于 2004-05-03 07:50:08 得分 0
你们没有明白我说的意思啊~~可惜Top
4 楼wwwllg(野蛮人)回复于 2004-05-03 17:24:28 得分 0
可以在你发送的时候,每次发一个固定大小的包,每次发送的时候,检查一个标志,比如是否是:“开始”、“暂停(包括文件断点续传)”、“停止”、“删除”这些基本的操作,根据不同的操用做不同的动作。Top




