VC++ socket多线程编程问题 15

用VC++做了一个服务器用来接收通过多个GRPS模块传输过来的数据,实现思想是:每当有一个GPRS模块建立连接,就建立一个接收数据的现成。开始是每个GRPS模块注册网络信... 用VC++做了一个服务器用来接收通过多个GRPS模块传输过来的数据,实现思想是:每当有一个GPRS模块建立连接,就建立一个接收数据的现成。开始是每个GRPS模块注册网络信号,注册成功后(即已经连接上服务器,服务器这边会显示注册成功的GPRS模块的IP地址)每隔6分钟向服务器发送一个数据。当只有1个GPRS模块传输数据时,程序运行了16个小时,就没有数据接收过来了,但是GPRS模块那边仍然在发送数据,当有两个GPRS模块传输数据时,程序只接受了几次数据之后,就接受不到数据了。我在想难道是两个GPRS模块发送数据会冲突吗,还是程序写的有问题,会耗掉CPU资源。下面是处理接收数据的函数。 展开
 我来答
gu_xuefeng007
2014-11-14 · 超过20用户采纳过TA的回答
知道答主
回答量:57
采纳率:0%
帮助的人:18.2万
展开全部
CSocket是非线程安全的,不建议在线程中使用。
建议方法:socket设定为一个收发,根据内容标识来确定分发给哪个线程处理。
更多追问追答
追问
发送的内容是是固定的数据格式,你的意思是每个GPRS模块有一个自己的标识吗?比如第一个GPRS发送的数据为A+数据,第二个GPRS发送的数据为B+数据,是这个意思吗?
追答
对,增加一个标识字段吧,用不了几个字节。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式