MFC TCP通信,万能红外线接收头完整包

版权声明:本文为博主原创文章未经博主允许不得转载。 /ennika/article/details/

要说起来这个才是我第一个接触的MFC项目,想想当时第一次真正自己写MFC连VS都还不太会用,然后网上下下来别嘚大神写的例程都觉得超级深奥,所幸这段难熬的日子终于过去了

  socket在培训时候学QT用过,在Linux和在Windows下原来基本是一样的只是函数调鼡上会有所区别。个人认为相对难一点的是CAsyncSocket和CSocket这两个类的选用理论上来讲就是异步和同步的区别,但实际上网上的例程对这两个类的用法各不相同想具体了解还是得看看些理论上得知识。

  关于socket的剖析之前做项目看了一遍,今天又连续看了好几遍终于算是看懂了┅点。网上写得好的也就几篇然后各种转载,原创大多都是零几年的时候写的挑了几篇相对简单一点,勉强能半懂的以后用到socket遇到難题再翻翻:

这篇同步和异步解释得很生动,两个类应用方法也很具体

这篇稍微简单,很直接对比了两个类比较容易看懂。

这篇相对來说比较深奥一点除了用法还有一点原理的东西。

  线程通信对于菜鸟来讲算是个难点信息同步和管理什么的是个难题,饶了好大個圈最终想起了OnAccept()、OnReceive()的办法。之前做单收发这两个函数很好用没想过多客户端直接加几句就好了。用这个办法的例程大多都是用CSocketFile的用嘚时候发现万能红外线接收头马上再发出去好像不行,找不到原因暂时先用着Receive()和Send(),所以之后还会去再研究的  用这两个函数的时候並没有意识是异步,总觉得需要用到线程可是怎么都想不明白线程从哪里开。这几天仔细去研究才发现其实这种方法就是异步。由于CSocket嘚基类是CAsyncSocket从CSocket继承子类使用,也是间接继承了CAsyncSocket根据前面大神的博文里介绍,CSocket是通过在CAsyncSocket上面添加轮询实现阻塞的所以用不上阻塞,其实僦只是使用了CAsyncSocket而已

  理解了这些由来,就决定把继承CSocket改为继承CAsyncSocket一开始并没有什么问题,但是运行几次过后connect会报错,GetLassError()得到10035然后就洅也不能连接成功了。再去翻阅了大神们的博文最终在第二篇找到答案。

  po一下成品吧界面比较简陋。

  左上角是服务器端其怹三个是客户端。能实现服务器对某客户端服务器对所有客户端,客户端之间的通信

  屯点积分和下载点数~

  程序有点大,是因為两个Server和Client都保留了Debug。可以看了效果再决定要不要看代码,电脑慢星人表示每次都要先编译看了才发现完全不是自己想要的好心塞。

  忘记注明了环境是VS2012!!!


}

课程实验之一用MFC实現TCP通信,使用SOCKET完成通信可以发送和接受文件

0 0

为了良好体验,不建议使用迅雷下载

会员到期时间: 剩余下载个数: 剩余C币: 剩余积分:0

为叻良好体验不建议使用迅雷下载

为了良好体验,不建议使用迅雷下载

0 0

为了良好体验不建议使用迅雷下载

您的积分不足,将扣除 10 C币

为了良好体验不建议使用迅雷下载

开通VIP会员权限,免积分下载

你下载资源过于频繁请输入验证码

若举报审核通过,可返还被扣除的积分

}

我要回帖

更多关于 万能红外线接收头 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信