python - पायथन सॉकेट त्रुटि टाइप टाइप: एक बाइट्स जैसी वस्तु की आवश्यकता होती है, न कि 'फंक्शन' के साथ भेजें




python-3.x (2)

आप इसके लिए भेज सकते हैं:

c.send(b'Thank you for connecting')

इसके बजाय b इसे बाइट करता है।

मैं एक प्रोग्राम बनाने की कोशिश कर रहा हूं जो स्थानीय मशीन पर एक पोर्ट खोलेगा और दूसरों को नेटकैट के माध्यम से कनेक्ट करने देगा। मेरा वर्तमान कोड है

s = socket.socket()
host = '127.0.0.1'
port = 12345
s.bind((host, port))

s.listen(5)
while True:
    c, addr = s.accept()
    print('Got connection from', addr)
    c.send('Thank you for connecting')
    c.close()

मैं पायथन और सॉकेट्स के लिए नया हूं। लेकिन जब मैं इस कोड को चलाता हूं तो यह मुझे कमांड के साथ एक नेट कनेक्शन भेजने की अनुमति देगा:

nc 127.0.0.1 12345

लेकिन फिर मेरी पायथन लिपि में मुझे c.send के लिए त्रुटि मिलती है:

TypeError: a bytes-like object is required, not 'str'

मैं मूल रूप से केवल एक पोर्ट खोलने की कोशिश कर रहा हूं, netcat को कनेक्ट करने और उस मशीन पर एक पूर्ण शेल रखने की अनुमति देता हूं।


आप इसे प्राप्त कर सकते हैं। यह प्राप्त करने के लिए receive.decode('utf_8')





python-3.x