INtime version 4 introduced a new network stack with many new and advanced features, called "network7". The old implementation has been left in the product for backwards-compatibility reasons, but no new development will occur on that implementation. New network projects should use network7 and it is likely that some older projects will be migrated to take advantage of the new features, and ongoing hardware support.
In order to migrate your application, you will need to recompile your project and likely make some source code changes.
Converting your project
Some project settings need to change to recompile your application to use the new stack. They are as follows:
- Add __INTIME__ and __C99__ to your preprocessor defines
- Remove ciff3m8.lib and netiff3m.lib from your linker settings, replace them with clib.lib and netlib.lib, respectively.
- Add $(INTIME)/rt/include/network7 before $(INTIME)rt/include
- If using C++:
- Add $(INTIME)/rt/include/cpp before the include paths mentioned above.
- Define VS7_CPP and _HAS_NAMESPACE.
- Use cpplib.lib and rtpp.lib in place of ecpp*.lib and rtpp*.lib
Changes to source code
The following are major changes in the implementation of the network software, and are designed to pull the stack closer to a standard implementation.
- socktout() is no longer supported. Use fcntl(s,F_SETFL,O_NONBLOCK) or poll() / select() instead.
- select() now takes a struct timeval for the last parameter, rather than the nonstandard short word 10ms tick value
- INtime Pre 4.0 did not support non-blocking connect(). The attached project connect_with_timeout.zip demonstrates how to use fcntl() to achieve this.
- C:\Program Files\INtime\rt\include\network7 must be added to your include search path and must come before C:\Program Files\INtime\rt\include.
New features
The following are features new to INtime networking.
- IPv6
- BPF
- libpcap
- SCTP
- IPFW
See Also