Ker*_*mia 0 delphi string indy
在Indy,当我们向服务器发送一些字符串时,它们会更改并以新格式显示.例如,我试图在indy中使用"WriteLn"命令发送二进制文件(File.exe):
Ms.LoadFromFile(FileAddress);
Ms.Read(B, Chunk);
for j := low(B) to high(B) do
begin
Part := Part + chr(B[j]);
end;
Run Code Online (Sandbox Code Playgroud)
并发送字符串:
FileClient.IOHandler.WriteLn(Part);
Run Code Online (Sandbox Code Playgroud)
当客户端向服务器发送字符串时,我正在用嗅探器监视clinet.最后我得到了这个结果:
MZ?.........yy..,.......@...................................,.....o..?.I!,.LI!This program cannot be run in DOS mode....$..
Run Code Online (Sandbox Code Playgroud)
如你所见,有些角色不再是真正的格式,而是变成了"?" 性格.但应该注意的是,嗅探器会自动将某些字符串更改为"." 例如,其中一个点(".")可能是chr(0)或chr(5)!
但嗅探器无法将某些字符更改为"." 我们在"?"中看到它们 格式.例如,我用记事本打开一个二进制文件,你可以看到真正的格式:
alt text http://up.iranblog.com/Files/9f195012dbc2425b8773.png 无论如何,问题是:如何在Indy 10中使用"WriteLn"命令发送二进制文件?
| 归档时间: |
|
| 查看次数: |
1464 次 |
| 最近记录: |