网站地图
范文同学网


自动化 模具 机械 电子 通信 动画 英语范文 工程管理 金融范文 旅游管理 工业工程 生物工程 给排水范文 西门子PLC 历史学 三菱PLC
单片机 财务 会计 法律 行政 物理 物流范文 电子商务 制药工程 包装工程 土木工程 材料科学 汉语言范文 欧姆龙PLC 电压表 松下PLC
计算机 化工 数电 工商 食品 德语 国贸范文 人力资源 教育管理 交通工程 市场营销 印刷工程 机电一体化 数控范文 变电站 文化产业

  • 网站首页|
  • 文档范文|
  • 人工降重|
  • 职称文章发表|
  • 合作期刊|
  • 范文下载|
  • 计算机范文|
  • 外文翻译|
  • 免费范文|
  • 原创范文|
  • 开题报告

联系方式

当前位置:范文同学网 -> 免费范文 -> 计算机范文 -> 免费vc++网上寻呼QICQ源代码(附带范文)(八)
计算机文章范文| ASP设计| Delphi| VB设计| JSP设计| ASP.NET| VB.NET| java设计| VC| pb| VS| dreamweaver| c#.net| vf| VC++| 计算机文档范文| 范文下载| 自动化范文
·电气自动化原创文章范文 ·学前教育专业原创文章范文 ·国际经济贸易原创文章范文 ·药学专业原创文章范文 ·英语专业原创文章范文 ·公共事业管理原创文章范文
·金融专业原创文章范文 ·广播电视编导原创文章范文 ·电子商务专业原创文章范文 ·法律专业原创文章范文 ·工商管理原创文章范文 ·汉语言文学原创文章范文
·人力资源管理原创文章范文 ·摄影专业原创文章范文 ·心理学专业原创文章范文 ·教育管理原创文章范文 ·市场营销原创文章范文 ·计算机专业原创文章范文
·物流管理专业原创文章范文 ·小学教育专业原创文章范文 ·行政管理专业原创文章范文 ·土木工程管理原创文章范文 ·财务会计专业原创文章范文 ·信息管理信息系统原创范文
·新闻学专业原创文章范文 ·眼视光技术原创文章范文 ·播音与主持原创文章范文 ·广告学专业原创文章范文 ·表演专业原创文章范文 ·动画专业原创文章范文
·视觉传达设计原创文章范文 ·数控技术专业原创文章范文 ·录音艺术原创文章范文 ·光机电应用技术原创范文 ·机电一体化原创文章范文 ·印刷技术专业原创文章范文
·动漫设计与制作原创范文 ·软件技术专业原创文章范文 ·书法学专业原创文章范文 ·应用电子技术原创文章范文 ·电子信息工程技术原创范文 ·机械专业原创文章范文
·酒店管理专业原创文章范文 ·旅游管理专业原创文章范文 ·文化产业管理专业原创范文 ·体育教育专业原创文章范文 ·通信工程专业原创文章范文 ·护理专业原创文章范文

原创文档范文 → 计算机专业原创文档范文 软件技术专业原创文档范文  现成文档范文 → 计算机文档范文

免费vc++网上寻呼QICQ源代码(附带范文)(八)

本文ID:LW6260 ¥
rrentMsg; 当前查看到的数据位置(索引) CTalkDlg* pTalk; //发送消息的对话框指针 CLookDlg* pRecv; //查看消息的对话框指针 CFriendDetailDlg* pFInfo; //查看详细资料对话框的指针 }; 传给发送线程的参数数据结构: struct sparam { CData* pData; 需要发送的数据的指针 CWnd*pWnd; 接受反馈消息的窗口 CClientSocke..
rrentMsg;   当前查看到的数据位置(索引)
 CTalkDlg* pTalk; //发送消息的对话框指针
 CLookDlg* pRecv; //查看消息的对话框指针
 CFriendDetailDlg* pFInfo; //查看详细资料对话框的指针
};

传给发送线程的参数数据结构:
struct sparam
{
 CData* pData; 需要发送的数据的指针
 CWnd*pWnd;   接受反馈消息的窗口
 CClientSocket* pSocket; 客户端socket的指针
};

全局函数申明:
UINT RequestFriendDetail(LPVOID param);
查询所有好友的详细信息是否完全,若没有详细信息,则以一定的时间间隔,向服务器发送没有详细信息的好友的请求信息。此工作线程函数,在上线或隐身后,N秒后将开始执行,然后每隔K秒就向服务器发送请求信息,在后台处理。原则是,把每个好友详细信息取回,又不影响前台用户的操作。
UINT SendThread(LPVOID param);
在线程里发送数据的函数


§4.6服务器端的底层通讯类的设计

 为了使能及时响应用户的请求,当用户很多时,仍然能够适应要求,我把侦听与发送数据的Socket分开,并分别都建立了多个实例,
也就是说,支持多个端口的侦听,发送数据使用的是多个端口,我只对侦听端口感兴趣,对发送数据的端口不感兴趣,因为,发送端口是多少都无所谓。

 CRecvSocket和CsendSocket都是从CAsyncSocket类里继承而来,分别处理侦听请求各发送数据,在CServerSocket类里,定义了几个CRecvSocket和CSendSocket对象的实例,通过CServerSocket类对内部进行组织和管理,提供给上层的接口是CServerSocket,它隐藏了服务器底层通讯的细节及多线程发送数据的问题,提供给上一层一个统一的接口,CServerSocket类的使用,是先建立一个它的实例,再调用成员函数Create(),传入必要的参数,发送数据时,就调用其成员函数SendData,处理接受数据,在CRecvSocket类的OnReceive里处理,调用了一个名为ProcessRecvData的线程函数,用户在这个线程函数里写上具体的处理代码

算法描述:

 发送一个数据,需要等待响应信息的回来,如果在规定时间内,还没有收到确认信息,则认为发送数据丢失,将重试FailReDoTime次,如果还是没有确认信息发送回来,则返回发送失败,否则,返回发送成功。
 
 因为服务器是多线程的发送数据,有一个请求,就建立一个线程进行处理。我为每个发送socket设置一个是否忙的标志busy,当需要发送数据时,就选择一个空闲的sendsocket,设置为忙,然后发送数据,再设置回空闲,然后等待确认信息的回来。
 
 SendData函数的实现算法,通过设置一个缓冲区长度为N,然后,为每一次数据进行统计,发一次,就加1,然后把发送数据中的This=count%N,且把缓冲区中第This个成员设为0,在发送端,就要数组中的第This个成员是否为1即可,在接受到的确认信息中,取出This项,再为缓冲区中第This项设为1,这样就可以快速且可靠的判断发送数据是否得到响应回来了。

侦听类结构:
class CRecvSocket : public CAsyncSocket
{
private:
 char m_szResponseMsg[MaxResponseMsgLength];     确认消息串
 int m_szrLength;                                 确认消息串的长度
public:
 CRecvSocket();
 virtual ~CRecvSocket();
public:
 BOOL Create(int nPort);             指定端口号,建立一个侦听Socket
 virtual void OnReceive(int nErrorCode);  处理接受数据
};

发送数据的socket类结构
class CSendSocket : public CAsyncSocket
{
private:
 BYTE* pBuf; 
//指向CServerSocket的m_arBuf缓冲区,处理发送后是否收到确认信息的缓冲区
 char m_szResponseMsg[20];
 int m_szrLength;
public:
 CSendSocket(BYTE*buf);
 virtual ~CSendSocket();
 BOOL Create();                     建立一个发送的socket
 virtual void OnReceive(int nErrorCode);  处理发送数据后接受到的确认消息
};

服务器的socket类
 这个通讯类的SendData,当发送数据失败时,可以重发几次,次数可由用户来确定
class CServerSocket 
{
public: 
 void Close();
 BOOL Create(int SendSockNum,CArray<DWORD,DWORD>&aPort,int TimeOut= TimeWaitForRes);
//建立侦听Socket和发送Socket,aPort是侦听端口数组,TimeOut是设置发送超时时间
 BOOL SendData(CData* pData,int FailReDoTimes=3);  
//数据函数,这个函数适合在线程里发送数据函数,而服务器的响应都是在工人线程里完成的,所以,很适合服务器的发送数据。成功返回真,不成功返

首页 上一页 5 6 7 8 9 10 11 下一页 尾页 8/17/17

免费vc++网上寻呼QICQ源代码(附带范文)(八)相关范文
上一篇:免费vc++医药管理系统+范文 下一篇:免费vc中国象棋软件
点击查看关于 免费 网上 寻呼 QICQ 源代码 附带 范文 的相关范文题目 【返回顶部】
精彩推荐
电气工程自动化原创范文  电子商务原创文章范文
人力资源专业原创文章范文 土木工程原创文章范文
工商管理专业原创范文    药学专业原创范文
汉语言文学专业原创范文  会计专业原创文章范文
计算机技术原创文章范文  金融学原创文章范文
法学专业原创文章范文   市场营销专业原创范文
信息管理专业原创文章范文 学前教育专业原创范文
公共事业管理专业原创范文 英语专业原创范文
教育管理专业原创范文   行政管理专业原创范文
热门范文

关于我们 | 联系方式 | 范文说明 | 网站地图 | 免费获取 | 钻石会员 | 硕士文章范文


范文同学网提供文档范文,原创文章范文,网站永久域名www.lunwentongxue.com ,lunwentongxue-范文同学网拼音首字母组合

本站部分文章来自网友投稿上传,如发现侵犯了您的版权,请联系指出,本站及时确认并删除  E-mail: 17304545@qq.com

Copyright@ 2009-2024 范文同学网 版权所有