+ added the s-net files
- cleaned up a bit
+ added platform-specific socket-datatype (int / SOCKET)
* changed the code to make use of the new socket-datatype
! fixed error-checks to be platform-conform
+ added some more exception-throwing on errors
- removed temporary variable in accept()
* changed buffer to a string in the main.cpp
+ added the possibility to reuse the port (useful if the previous program
crashed)
+ the server now prints out the ip of the client that connected
+ snet.hpp automatically checks if inet_pton and inet_ntop are available
+ added drop-in-replacements for inet_pton and inet_ntop
+ added an internal ip-string to the TCP_client-class
+ TCP_server::accept() now stores the ip of the accepted client
* changed get_error_message a bit
+ added the possibility to set a receive-timeout for sockets
+ added error-handling for the REUSE_PORT flag
+ added a flag to disable nagle's algorithm
+ snet::TCP_client now provides a public get_ip()
* snet::TCP_client::ip is now protected
* test-code now uses get_ip()
* moved the Watchman-class to the TCP_socket class to prevent programmers from accessing the Watchman-class directly
! fixed a few lines of code to be compatible to the changes mentioned above
- removed unnecessary files
- shortened todo-list
! fixes for linux (missing header, wrong types on inet_ntop)
+ added a socket-class from which TCP_socket and UDP_socket inherit
+ implemented UDP_socket
+ added a UDP_peer class to describe UDP-endpoints
+ added a Selector-class which simplifies the usage of select()
+ adddd a method to TCP_client which returns the hosts port
* reduced overhead of the watchman-class on non-windows platforms
! minor fixes for snet.hpp to stop the compiler complaining
* moved the constructor of TCP_client into snet.hpp
* exception-class now uses an initializer-list
* some changes in the project-file (better error detection etc.)
* changed the main program to test UDP-support
* changed the sock-member in snet::Socket to public (only temporary, needs to be fixed soon)
- removed the Selector-class because of poor design
+ added a poll-function which does what Selector did, but better
! repaired the way snet::poll() works
+ added a bunch of stuff like Socket::is_in_list
+ added Socket::get_sock() to get the socket number (for snet::poll() )
* the list now contains socket numbers and flags
* adjusted snet::poll() to work
* adjusted main.cpp to use the new feature
* protocol selection in TCP_server and TCP_client is now more efficient and defaults to IPv6
- removed debugging output
- removed some comments
! fixed linux support by always compiling in ntop and pton in the
snet-namespace
* changed main.cpp to let me test some NAT-punchthrough-techniques