我知道,我问了很多问题......但是作为一个新的delphi开发人员,我一直在讨论所有这些问题:)
使用印10.为了使通信效率这一个与TCP通信交易,我编写一个客户端操作请求作为单个字节(在大多数情况下,接着,当然其他数据字节,但在这种情况下,只有一个单一的字节).问题是
var Bytes : TBytes;
...
SetLength (Bytes, 1);
Bytes [0] := OpCode;
FConnection.IOHandler.Write (Bytes, 1);
ErrorCode := Connection.IOHandler.ReadByte;
Run Code Online (Sandbox Code Playgroud)
不立即发送该字节(至少不调用服务器执行处理程序).如果我将'1'更改为'9',例如一切正常.我假设Indy缓冲了输出字节,并尝试禁用写缓冲
FConnection.IOHandler.WriteBufferClose;
Run Code Online (Sandbox Code Playgroud)
但它没有帮助.如何发送单个字节并确保立即发送?并且 - 我在这里添加另一个小问题 - 使用indy发送整数的最佳方法是什么?不幸的是,我无法在TIdTCPServer的IOHandler中找到像WriteInteger这样的函数......而且
WriteLn (IntToStr (SomeIntVal))
Run Code Online (Sandbox Code Playgroud)
对我来说似乎不是很有效率.是否有所作为我是否使用多个写命令行或字节数组一起收拾东西,并发送一次?
谢谢你的回答!
编辑:我补充说,我使用的是印地10日以来似乎有关于读了重大变化,写程序的提示.