SNTP is not a difficult protocol, basically a single frame format that is filled with information to make a time query. This frame is returned filled with the information required to determine the time. Everything is done in universal time (UTC) so this has to be converted to local time and the localised presentetion string format if it is to be used correctly. Also there will be a variable of network delays so the received SNTP frame will have the time of departure from the NTP server so we have to compensate this time for the network delay time.
As already stated, the SNTP uses a fixed frame format that has 48 bytes for version 3 and 100 bytes for version 4. In order to petition a time, certain information has to filled into the frame and in the case of version 4 authentication details.
A SNTP client can easily be written as a C# class. This is a re-write of a C function used in several embedded systems. For demonstration purposes there is a windows form front end and a web form equivalent.