Entity handling:
If you ent_create something on client A will it be created on client B as well?
It's not as easy as changing IPPROTO_TCP to IPPROTO_UDP.
Udp is not reliable. maybe some packets will get lost in the void.
So it's up to the programmer to support reliable packets.
I asked that because I'm programming a multiplayer dll too.
I chose UDP because it's faster. And I added a reliability layer.
You can chose if your data should be sent relibale or not.
So you are able to send movement data unreliable and chat messages reliable.