lrs_length_receive

Example 1

In the following example, data (buffer1) is sent on a socket (socket0). Then the same data is received on the same socket with lrs_length_receive using the OffsetSize location_option. buffer1 consists of a length value of 2 bytes (in bold) and data. After obtaining the length value of 51, lrs_length_receive goes on to read 51 bytes of data from socket0 into buffer2. Note that there is no need to pass the locator parameter "Offset=0" as this is the default setting.

buffer1

51aaabbcc dddeeeeeeeeeeeeeeffffffffffffgggggghhhhhhhi"


lrs_create_socket("socket0", "TCP", "RemoteHost=bona.mercury.com:7", LrsLastArg);

lrs_send("socket0", "buffer1", LrsLastArg);

lrs_length_receive("socket0", "buffer2", OffsetSize, "Size=2", LrsLastArg);

Example 2

In this example, data (buffer3) is sent on a socket (socket0). The same data is received on the socket with lrs_length_receive. The LeftRightBoundaries location_option is used with the left boundary being the string "LLLL" and the right boundary "RRRR". The lrs_length_receive first locates the second instance of the left boundary string (in bold) because the Ordinal locator is set to 2. The function is then told to jump a further 27 bytes (Offset=27) to finally locate the length value. This value is 9 (in bold) and is bounded by the right boundary of "RRRR". The 9 bytes after the right boundary are the characters "Requested" which lrs_length_receive reads from socket0 and writes to buffer4.
The subsequent call to lrs_receive reads the rest of the data into another buffer.

buffer3

"12LLLL34LLLLOOOOOfffffsssssseeeeeTTTTTT9RRRRRequestedZZZZZZZZZZZZZZZZZZZZ2LLLLAAAAAAAAAAAAAAAAAAAAAAEnd Buf"


lrs_create_socket("socket0", "TCP", "RemoteHost=bona.mercury.com:7", LrsLastArg);

lrs_send("socket0", "buffer3", LrsLastArg);

lrs_length_receive("socket0", "buffer4", 2, "LB=LLLL", "RB=RRRR", "Offset=27", "Ordinal=1", LrsLastArg);

// Now receive the rest of received data

lrs_receive("socket0", "buffer5", LrsLastArg);

Example 3

In this example, data (buffer6) is sent on a socket (socket0). The same data is received on the socket with lrs_length_receive using the LeftBoundarySize location_option, the left boundary being the binary values //x00//x00//x00//x07. lrs_length_receive first locates these values (in bold) and then is told to jump a further 7 bytes (Offset=7) to finally locate the length value which takes up 2 bytes (Size=2). This value is 16 (also in bold). However, because the additional_param SubtractSize is set to zero, the size of the length field itself, 2, is subtracted from the total, making 14. The 14 byte string following the length field, "Requested Data", is read from socket0 and written to buffer7.
The subsequent call to lrs_receive reads the rest of the data into another buffer.

buffer6

"12LLLL34//x00//x00//x00//x07eTTTTTT16Requested Data ZZZZZZZZZZZZZZZZZZZZ2LLLLAAAAAAAAAAAAAAAAAEnd Buf"


lrs_create_socket("socket0", "TCP", "RemoteHost=bona.mercury.com:7",

lrs_send("socket0", "buffer6", LrsLastArg);

lrs_length_receive("socket0", "buffer7", 3, "LB/BIN=//x00//x00//x00//x07", "size=2", "Offset=7", "SubtractSize=0", LrsLastArg);

// Now receive the rest of received data

lrs_receive("socket0", "buffer8", LrsLastArg); 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值