我想明白爲什麼在Wireshark
程序中收到的數據包與我的delphi應用程序發送的數據包不同。誰能幫我?德爾福 - 爲什麼udp數據包不同?
這裏是我的代碼:
if Pos('\x',comandoRede.Comando) > 0 then
begin
bufferS := Explode('\x',comandoRede.Comando);
SetLength(buffer,Length(bufferS)-1);
for J := 0 to Length(Buffer) -1 do
begin
buffer[J] := StrToInt('$'+bufferS[J+1]);
end;
TIdUDPServer(item).SendBuffer(equipamentoRede.IP,
StrToInt(equipamentoRede.Port),buffer,Length(buffer));
end
這裏的緩衝區數組的內容:
這裏日誌的network sniffer Wireshark
我我試過無線TIDUDPClient也是如此,但問題是一樣的。
感謝您的幫助。
在填充'buffer'之前'bufferS'的值是什麼?你確定你實際上是在調試器中查看正確的'buffer'(以及在查看它時哪些代碼停止了?),並且在Wireshark的正確數據包中?我懷疑你正在看兩件不同的事情。 Indy不會更改正在發送的數據。 –
如何在您的Indy版本中聲明SendBuffer?它使用TIdBytes參數還是使用無類型的var參數? – MBo
@MBo:給出顯示的代碼,它必須是'var'版本(Indy 9),因爲'TIdBytes'版本(Indy 10)沒有明確的長度參數,所以它使用數組長度代替。 –