PB 调用WINSOCK接收数据GETDATA过大的问题
我在跟一个仪器做单项通讯的时候用的是TCP/IP协议,他给我发单项数据,每次给我多个数据包发送的时候就显示我这边已经掉线了,
对方的给我的每个数据包都是31万字节的,用|分割,一共里面大概74条数据,我给存到整个的31万存到str_1里面了,
str_1我定义的是string型
当是run这个程序的时候,程序就卡死CPU占用率百分之百,我跟踪数据库的时候发现到63调就不插值(64条是一个3万多字节的数据),我把4和3都屏蔽后发现还是卡死,但是往mle_1里面显示数据的时候,是分批显示的,例如先显示20万,然后下拉滚动条就会向下,过半分钟又增加了11万,我又把MLE_1.TEXT=STR_1去掉还是卡死。
但是我DEBUG的时候还发现1、2、3、4步骤都不卡死
还有我有一个奇怪的地方,在GETDATA的时候数据是31万都过来的
但是我赋值到MLE_1里面的时候就会分批的显示,
1.请问数据是分批次过来的吗?
2.我就不理解为什么接收每一条的时候都那么慢,是因为数据还没发送过来,在等数据吗,特别是到64条的时候,需要等半天?
3.还有就是对方仪器发送多个数据包的时候我为什么会掉线?
我就觉得他给我发的数据包太大了,才导致和卡死和掉线的,具体是什么原理哪位高人给我讲讲?
我的全部家当66分已经献上,静待高人。
附简易代码:
在ARRIV函数下
string str_1
//1.接收数据
winsock.getdata(str_1)
mle_1.text = str_1
//2.发送密码给对方WINSOCK
winsock,sendata(‘’)
//3.截取字符串
//4.把获取的包存到数据库里
insert 插入数据