TypeError: Objek seperti bait Diperlukan untuk Komunikasi Soket
Kod Python yang diberikan cuba mengubah suai input pengguna menggunakan soket. Walau bagaimanapun, selepas pelaksanaan, ia menemui mesej ralat "objek seperti bait diperlukan, bukan 'str.'"
Analisis Masalah
Penanganan Python 2 rentetan dan bait secara berbeza. Dalam Python 2, kod berfungsi seperti yang dimaksudkan. Walau bagaimanapun, dalam Python 3, mesej input ialah rentetan, manakala soket memerlukan objek seperti bait untuk penghantaran. Percanggahan ini membawa kepada ralat.
Penyelesaian
Untuk menyelesaikan isu dan menghantar bait melalui soket, gunakan kaedah encode() untuk menukar rentetan mesej kepada objek seperti bait. Bahagian kod yang diperbetulkan ialah:
<code class="python">clientSocket.sendto(message.encode(), (serverName, serverPort))</code>
Nota Tambahan
Untuk pengendalian mesej yang betul di bahagian pelayan, data yang diterima hendaklah dinyahkod menggunakan penyahkod( ) kaedah sebelum diproses. Berikut ialah kod yang diubah suai dengan kedua-dua pengekodan dan operasi penyahkodan:
<code class="python">clientSocket.sendto(message.encode(), (serverName, serverPort)) modifiedMessage, serverAddress = clientSocket.recvfrom(2048) print(modifiedMessage.decode()) clientSocket.close()</code>
Dengan melaksanakan perubahan ini, anda boleh memastikan bahawa kod berfungsi dengan betul dalam Python 3, membolehkan komunikasi melalui soket dengan pengendalian bait yang betul.
Atas ialah kandungan terperinci Bagaimana untuk Menyelesaikan \'TypeError: Objek seperti bait Diperlukan untuk Komunikasi Soket\' dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!