VC++ 用Socket怎样编持续接收数据的程序

VC++ 用Socket怎样编持续接收数据的程序,第1张

你这种是用的阻塞模式,就是 Accept和Receive 都会卡住不动,直到有新连接或者有新数据。

实际使用场景中,阻塞模式,一个线程专门Accept 有新的连接之后,为每一个连接再创建一个线程来处理 Receive,也就是对于服务器来说,假设当前有10个工作的连接,那么至少需要11个线程。

你只需要开几个专门的线程来负责接受连接和接收数据就可以了。

这种阻塞模式不适合大并发量的网络程序,测试小程序没问题,大并发量时需要使用非阻塞模式,比如一般常用的select模式

百度 “select模型” 就可以搜到。

客户机端看你使用PC机还是单片机或者DSP都可以,但是使用不同的硬件环境编写串口程序有些差异,使用PC机的话,如果用VC,就用Windows API或者Mscom控件实现串口的通信,使用单片机,就用Keil C实现串口通信,DSP的话就是CCS环境了,GPRS的通信程序基本是相同的,VC中不使用API函数的话都是标准C实现的

服务器端直接用PC机就可以了,用VC或者VB实现Socket的网络通信,就是给出一个人机交互的界面,显示并存储接收到的客户数据

这种东西是有的,

你需要研究一下工业GPRS模块,连接好SIM卡,他与单片机通信都是标准的AT指令,直接通过串口与单片机或者电脑串口进行通信,不是很难。GPRS部分,模块不同,GPRS的使用方便程度也不同,具有透明数据传输功能的GPRS模块,贵些,但使用方便。

你的系统应该这样设计,数据采集部分用单片机采集数据,并且用单片机的串口连接GPRS模块,发送相应的数据给接收端的另一个模块,并且接受控制端发过来的控制指令,接收端的GPRS模块直接由串口连接电脑(两端都要注意电平匹配)。电脑上的上位机需要开发程序,最好使用VC++,上位机程序的作用主要是经由串口和GPRS模块发送控制命令给数据采集端,接受GPRS模块上来的数据信息,处理信息并且显示在屏幕上,或者供使用者使用。

你的项目难点在上位机上

工业GPRS模块淘宝上有的是,各种品牌,各种档次,协议是一样的。有专用的指令手册照着做就行了,买模块的商家也会提供相应的资料或者例程。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/11718434.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-18
下一篇2023-05-18

发表评论

登录后才能评论

评论列表(0条)

    保存