最近看一个网络库的源码, 其中涉及到TCP的收包, 我们都知道, tcp收包的时候, 要处理好粘包问题, 也就是说, 在网络基础库中, 要判断收包的完整性。 而收包是否完整, 这是由应用程序逻辑来决定的, 此时, 就涉及到基础库调用主调模块呢?
怎么搞起呢? 利用函数指针, 把待调的函数的指针告诉基础库, 基础库处理的时候,调用函数指针就行了, 这样就OK了。
真的是很巧妙。
最近看一个网络库的源码, 其中涉及到TCP的收包, 我们都知道, tcp收包的时候, 要处理好粘包问题, 也就是说, 在网络基础库中, 要判断收包的完整性。 而收包是否完整, 这是由应用程序逻辑来决定的, 此时, 就涉及到基础库调用主调模块呢?
怎么搞起呢? 利用函数指针, 把待调的函数的指针告诉基础库, 基础库处理的时候,调用函数指针就行了, 这样就OK了。
真的是很巧妙。