Then only perform a /sockclose in your ON SOCKWRITE event (after setting a flag or using /sockmark to let you know you can close the socket). For instance:
on *:SOCKOPEN:mysock: {
var %i = 1
while (%i < 500) {
sockwrite -tn $sockname WRITING IMPORTANT DATA!!!
inc %i
}
sockmark $sockname done
}
on *:SOCKWRITE:mysock: {
if ($sock($sockname).sq == 0 && $sock($sockname).mark == done) {
sockclose $sockname
}
}
This is how it should have been done from the start.