用delphi写程序,要向服务端传数据,通过socket一次连接,发送3次数据,这个怎么取值。服务端是JAVA写的

要实现的流程是:(返回的recbuf是byte数组)1.发送$0401,16,返回状态值state1,和traidid;($0401,16,state1,都是4字节,tr... 要实现的流程是:(返回的recbuf是byte数组)
1. 发送$0401,16,返回状态值state1,和traidid;($0401,16,state1,都是4字节,traidid2字节)
2. 发送卡信息,返回state2;(state2是4字节)
3. 发送空的卡信息,作为结束,返回state3;(state3是4字节)

我连通了socket之后,
1.第一次返回 recbuf, 取state1 =recbuf1的0-3字节,这个时候服务端发过来的信息说是有个延时,这个延时我这边怎么取呀,sleep吗,不管用呢?
2.第二次发送数据接收的数组recbuf2 ,我要是取他的状态值,是从recbuf2 第0字节开始取吗?这时候有没有延时?
展开
 我来答
sirouszlh
2017-06-01 · TA获得超过1651个赞
知道小有建树答主
回答量:1038
采纳率:100%
帮助的人:641万
展开全部
1 首先你得确认这个延时是服务端分段发送数据 还是你自己的接收数据问题

如果是你本身的问题,你得查看你的socket控件的接收缓存大小之类的信息设置是否正确
即使是真有延时,那你就先取前面那个state1 然后再等待下一次的接收数据事件发生。
如果接收了state1的事件里 用sleep等待,那是没用的。
2 recbuf 本身是个数组 自然是从0开始 除非你另外定义了数组下界之类的
追问
服务端那边有延时,但是要等待下一个数据发过来这个过程,我要怎么写呀,不太懂这个,
2.那个发送,我是从零开始取的,但是他读出来的数据不对,第一个发送跟第二个发送之间也是有等待的,这个我要怎么写出来,不懂这个
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式