TypeError: 'str'はバッファインターフェイスをサポートしていません



Typeerror Strdoes Not Support Buffer Interface



Python 3のSOCKETのsend()メソッドは、バイナリデータ(バイト)のみを送信し、文字列(str)形式でデータを送信することはできません。

... str1 = 'arbitrary string' s.send(str1) ...

str1はstr型であるため、実行時にTypeErrorが発生します。



TypeError: 'str' does not support the buffer interface

Encode()はstrをバイトに変換し、decode()はバイトをstrに変換します。

この時点で、strをバイトタイプに変換する必要があります。



... str1 = 'arbitrary string' s.send(str1.encode()) ...

この時点で、正常に実行され、データを正常に送信できます。

(追記:通常の文字列を出力するのに便利な、recv()側でbytes()を使用してバイトをstrに変換することを忘れないでください〜)