我正在通过套接字交换一些数据,在通信的某个时刻,我需要发送这样的消息:
SendBuff(#$06 + #$05 + 登录,长度(登录) + 2);
爆炸消息:
"#$06" = header,我需要在这条消息的前面发送06
"#$05" = Login 的长度,其实就是这个问题!!
"Login" = 包含登录名的 AnsiString
"Length(Login) + 2" = 要发送的缓冲区的长度,就是登录的长度 + 2...
好的,正如我所说,问题出在#$05,如果我这样写,它可以工作,服务器识别消息并授权(考虑登录长度为5)。但是,如果我尝试这种方式:
SendBuff(#$06 + IntToStr(Length(Login)) + Login, Length(Login) + 2);
由于某种原因,实际上套接字发送值'35'!!!我试过这个:
SendBuff(#$06 + '5' + Login, Length(Login) + 2);
同样的问题,套接字发送值'35'......这里发生了什么?SendBuff 过程以这种方式接收参数:
程序 SendBuff(InputBuff: AnsiString; PacketSize: Integer);