鱼C论坛

 找回密码
 立即注册
查看: 1439|回复: 3

不知道错在哪

[复制链接]
发表于 2019-4-14 16:23:11 | 显示全部楼层 |阅读模式
1鱼币
python核心编程的一个例子
tsTclnt.py
---------------------------------
from socket import *

HOST = '127.0.0.1'
PORT = 21567
BUFSIZE = 1024
ADDR = (HOST, PORT)

tcpCliSock = socket(AF_INET, SOCK_STREAM)
tcpCliSock.connect(ADDR)

while True:
    data = input('> ')
    if not data:
        break
    tcpCliSock.send(data)
    data = tcpCliSock.recv(BUFSIZE)
    if not data:
        break
    print(data.decode('utf-8'))

tcpCliSock.close()
----------------------------

tsTserv3.py
-------------------------------------------------
from socket import *
from time import ctime

HOST = ''
PORT = 21567
BUFSIZE = 1024
ADDR = (HOST, PORT)

tcpSerSock = socket(AF_INET, SOCK_STREAM)
tcpSerSock.bind(ADDR)
tcpSerSock.listen(5)

while True:
    print("稍等......")
    tcpCliSock, addr = tcpSerSock.accept()
    print("正在连接:", addr)

    while True:
        data = tcpCliSock.recv(BUFSIZE)
        if not data:
            break
        tcpCliSock.send("[%s] %s" % (bytes(ctime(), 'utf-8'), data))

    tcpCliSock.close()
tcpSerSock.close()
----------------------------------------------运行之后

> hi
Traceback (most recent call last):
  File "tsTclnt.py", line 15, in <module>
    tcpCliSock.send(data)
TypeError: a bytes-like object is required, not 'str'

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-4-14 17:36:10 | 显示全部楼层
tcpCliSock.send(data)这一行代码
按着这个去处理cpCliSock.send("[%s] %s" % (bytes(ctime(), 'utf-8'), data))

错误原因:问题主要是由于当前操作的字符串是bytes类型的字符串对象,并对该bytes类型的字符串对象进行按照str类型的操作。
解决策略:让str和bytes类型之间的进行转码
str to bytes:(3种方式)

                               
登录/注册后可看大图

bytes to str (3种方式)

                               
登录/注册后可看大图


致谢博客:https://www.cnblogs.com/dpf-learn/p/8028121.html
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-4-20 15:52:32 | 显示全部楼层
我看了半天也没有看懂。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-4-24 13:48:11 | 显示全部楼层
tcpCliSock.send(data)改成tcpCliSock.send(data.encode("utf-8"))这样试一下
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-3-29 04:04

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表