The DCC Send/Get code has been stable for about a decade or two, so I haven't looked at it in a long time. If I remember correctly, and someone please let know if I've got this wrong, mIRC sends/expects ACKs of the number of bytes sent/received every so often. Is your code sending ACKs? If not, that could be the issue. Implementations can vary across clients, some of which may not care about sending/receiving ACKs.