CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VC/MFC >  进程/线程/DLL

socket多线程问题

楼主truewq(aibieli)2004-05-02 20:25:04 在 VC/MFC / 进程/线程/DLL 提问

我的毕业设计是用socket(要求不能用CSocket类派生)做一个文件传输工具。分为“接收端”和“发送端”。“接收端”监听网络,然后“发送端”向一个已经开始监听网络的“接收端”发送文件,文件传输的socket连结是在线程中动态建立的!而不像网上很多源代码是,事先让“接收端”和“发送端”建立连结,文件传输只限于这两台计算机之间。我的设计是可以让“接收端”同时接收不同发送端发送过来的文件;“发送端”也可以同时向不同的接收端发送文件。      
                我想做成多线程的,就像FlashGet那样,可以同时传输多个文件(多线程);可以对每一个传输中的文件进行:“开始”、“暂停(包括文件断点续传)”、“停止”、“删除”这些基本的操作。      
                目前我已经实现了传输功能,可是我不知道怎么“停止”文件的传输。也就是说,我现在的做出来的程序,一旦文件开始传输,就失去了对文件的控制,不能使文件传输停止。但是文件传输不会出错(局域网内)。      
                在网上找了很多的源代码来看,但都是单线程的(单线程中停止传输很好实现)。自己写出这里也停下来了。我为每一个传输文件写一个线程,但仅仅用多线程实现了传输的功能。而对于其他的功能比如:“暂停(包括文件断点续传)”、“停止”,却不知道怎样在各个线程中控制。因为我不知道怎样,在传输线程和主线程(程序线程)之间交换数据,怎样管理我建立起来的那些文件传输的线程。我只是想做得看上去像FlashGet那样。      
                总的说来,我遇到的棘手的问题就是:怎样在多线程中控制文件的传输????      
  还有我并没有创建自己的socket类,也没有派生CSocket类!请高手指点迷失的我~~~~ 问题点数:0、回复次数:3Top

1 楼wwwllg(野蛮人)回复于 2004-05-03 17:35:00 得分 0

可以在你发送的时候,每次发一个固定大小的包,每次发送的时候,检查一个标志,比如是否是:“开始”、“暂停(包括文件断点续传)”、“停止”、“删除”这些基本的操作,根据不同的操用做不同的动作Top

2 楼astrolabe()回复于 2004-05-10 15:49:46 得分 0

我的想法:  
  首先要把你的socket通信改为异步模式,例如使用重叠I/O,保证线程不会阻塞;  
  再者将通讯线程改为界面线程,这样可以灵活响应消息,容易控制Top

3 楼sosoxman()回复于 2004-05-10 16:15:05 得分 0

异步模式。  
  线程池来管理客户端的连接。  
  至少你可以一个队列里管理存储所有的客户端连接。  
   
  至于断开文件传输,你可以采用消息的方式进行控制。  
   
  定义C/S之间的消息格式。  
  比如:  
  //   消息头  
  typedef   struct   tagHeadMsg{  
    int   MsgType;  
    int   MsgClass;  
    int   MsgLength;  
    int   CRC;  
    int   Flag;  
  }tHeadMsg,   *ptHeadMsg;  
   
  //   主消息  
  typedef   struct   tagMainMsg{  
    tHeadMsg   Head;  
    void   *   Buffer;  
  }tMainMsg,   *ptMainMsg;  
   
  再定义具体的控制消息  
  Top

相关问题

  • 多线程socket!!!
  • Socket的多线程问题
  • 多线程SOCKET的问题!
  • 多线程Socket问题~~
  • socket的多线程问题
  • 多线程 用socket通信
  • 多线程socket问题
  • 多线程SOCKET通信中的问题
  • 有关多线程和Socket的问题
  • Java中多线程和Socket的问题?

关键词

  • 文件
  • 线程
  • 多线程
  • 断点
  • socket
  • 控制
  • 消息
  • 传输
  • 接收
  • 包括文件断点续传

得分解答快速导航

  • 帖主:truewq

相关链接

  • Visual C++类图书
  • Visual C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo