区别:
AContext.Socket.ReadBytes(...);
vs
AContext.IOHandler.ReadBytes(...);
他们的工作方式相同吗?或者也许是IOHandler中的一些缓存或什么?
答案 0 :(得分:6)
这两个实际上是完全相同的方法。当Socket
属性是IOHandler
派生对象(大多数时间)时,TIdIOHandlerSocket
属性指向相同的nil
组件,否则为IOHandler
。您应该将Socket
属性直接用于大多数I / O操作,因为它为使用不同类型的I / O系统的Indy提供了更大的灵活性。 {{1}}属性是特定于套接字的功能的有用快捷方式,例如访问套接字的关联IP /端口值。