strncpy() causes reset

PaulS:
I'll never understand why Microsoft invented a bunch of complex templates for casting, and why anyone uses them.

char *reply = (char *)(ether.tcpReply(session));

No templates; smaller footprint; easier (for me) to understand.

I like your method better.