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