">Hc" big endian türünde 3 uzunluğunda olduğu için toplamda giren verilerin bu koşulları sağlaması lazım, H = unsigned short ve c = char temsil etmekte programda unsigned short binary koduna çevirmek için verdiği koşullar sağlanmış hocam yani 2 üssü 16 - 1 aralığında fakat char 1 karakter uzunluğunda olmalı programın binary'e çevirmesi için char 1 den fazla veya az olduğu için hata veriyor
struct.pack(">Hc",offset_and_length,char) bu kısmı struct.pack(">Hc",offset_and_length,char[0]) şeklinde çevirip deneyin belki işe yarar




ol_bytes = struct.pack(">Hc",offset_and_length); ol_bytes += ''.join([ord(c) for c in char])
bu şekilde de değişip deneyin ama kodları görmeden böyle konuşmak çok doğru değil hocam