I wonder if it might be worthwhile to not do your own binding, but instead to simply read a /dev/rfcommX device, and let rfcomm do the binding for you?