python socket的send不能發送字符串解決辦法


sever.py

import socket
s = socket.socket()
host = socket.gethostname()
port = 13323
s.bind((host,port))
s.listen(5)
while True:
    c,addr = s.accept()
    print('連接地址:',addr)
    str1 = '歡迎'
    c.send(str1)
    c.close()

client.py

import socket

s = socket.socket()
host = socket.gethostname()
port = 13323
s.connect((host,port))
print(s.recv(1024))
s.close()

分別運行之后sever.py報錯

Traceback (most recent call last):
  File ".\server.py", line 11, in <module>
    c.send(str1)
TypeError: a bytes-like object is required, not 'str'

解決辦法:

sever.py改為

import socket
s = socket.socket()
host = socket.gethostname()
port = 13323
s.bind((host,port))
s.listen(5)
while True:
    c,addr = s.accept()
    print('連接地址:',addr)
    str1 = '歡迎'
    c.send(str1.encode("utf8"))
    c.close()

client.py改為

import socket

s = socket.socket()
host = socket.gethostname()
port = 13323
s.connect((host,port))
print(s.recv(1024).decode())
s.close()

分別運行后:

client.py輸出

歡迎

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM