Bei dir hat "strout" keine ausreichende Länge, ( char strOut[] = ""; )
und gleich dahinter stehen deine Pointer.
Es ist zu vermuten, dass du mit dem Byte transfer dann deine Pointer vernichtest und im Nirwana landest.