Delphi:Socket.ReadBytes(); vs IOHandler.ReadBytes()

waz*_*123 5 sockets delphi indy

是什么区别:

AContext.Socket.ReadBytes(...);

 vs

AContext.IOHandler.ReadBytes(...);
Run Code Online (Sandbox Code Playgroud)

他们的工作方式相同吗?或者也许是IOHandler中的一些缓存或什么?

Rem*_*eau 6

这两个实际上是完全相同的方法.当它是一个衍生对象(大多数时候)时,该Socket属性指向同一个IOHandler组件TIdIOHandlerSocket,nil否则.您应该将该IOHandler属性直接用于大多数I/O操作,因为它为使用不同类型的I/O系统的Indy提供了更大的灵活性.该Socket属性是特定于套接字功能的有用快捷方式,例如访问套接字的关联IP /端口值.