Your example:

on *:SOCKREAD:test-client:{
if ($sockerr) test-stop [CLIENT] SockRead error
sockread 8192 &bvar
}

on *:SOCKREAD:test-client:{
if ($sockerr) test-stop [CLIENT] SockRead error
sockread 1024 &bvar
sockread 1024 &bvar
sockread 1024 &bvar
sockread 1024 &bvar
}

on *:SOCKREAD:test-client:{
if ($sockerr) test-stop [CLIENT] SockRead error
sockread 1024 &bvar
while ($sockbr) {
sockread 1024 &bvar
}
}

Where is the return?

THE PROBLEM IS RETURNING AFTER /SOCKREAD, UNDERSTAND?

Modifying your code:

on *:SOCKREAD:test-client:{
if ($sockerr) test-stop [CLIENT] SockRead error
sockread 8192 &bvar
if ($sockbr == 0) return
}

on *:SOCKREAD:test-client:{
if ($sockerr) test-stop [CLIENT] SockRead error
sockread 1024 &bvar
if ($sockbr == 0) return
sockread 1024 &bvar
if ($sockbr == 0) return
sockread 1024 &bvar
if ($sockbr == 0) return
sockread 1024 &bvar
if ($sockbr == 0) return
}

on *:SOCKREAD:test-client:{
if ($sockerr) test-stop [CLIENT] SockRead error
sockread 1024 &bvar
if ($sockbr == 0) return
while ($sockbr) {
sockread 1024 &bvar
if ($sockbr == 0) return
}
}

If you want, just put a return later without checking the $sockbr:

on *:SOCKREAD:test-client:{
if ($sockerr) test-stop [CLIENT] SockRead error
sockread 8192 &bvar
return
}