TypeError: 'bytes' object is not callable解决办法

本文介绍了一个Python Socket服务端编程示例,演示如何创建socket对象并监听客户端连接请求,处理HTTP请求并返回响应。文章中展示了具体的Python代码实现,并针对出现的TypeError错误进行了分析。
摘要由CSDN通过智能技术生成

python 遇到这个问题:

源码如下

# 导入 socket、sys 模块
import socket
import sys

# 创建 socket 对象
serversocket = socket.socket(
            socket.AF_INET, socket.SOCK_STREAM) 
port = 80
serversocket.bind(('127.0.0.1', port))
# 设置最大连接数,超过后排队
serversocket.listen(5)

while True:
    # 建立客户端连接
    clientsocket,addr = serversocket.accept()      

    print("连接地址: %s" %str(addr))
    str = clientsocket.recv(1024)
    print(str1)
    #msg='欢迎访问菜鸟教程!'+ "\r\n"
    msg = 'HTTP/1.1 200 OK\r\nContent-Type: text/html;charset=ISO-8859-1\r\nContent-Length: 500\r\n\r\n<html>\r\n<head>\r\n<title> hello word it is my first try</title>\r\n</head>\r\n<body>\r\n<h2>\r\n hello word it is my first try</h2>\r\n</body>\r\n</html>\r\n'
    clientsocket.send(msg.encode('utf-8'))
    print("dfsdf")
    clientsocket.close()
    #while True:
    #	pass

报错如下:

raceback (most recent call last):
  File "E:\Data\Coding\python\socke.py", line 17, in <module>
    print("连接地址: %s" %str(addr))
TypeError: 'bytes' object is not callable


因为这个函数里调用了str(addr),而后面定义了字符串str.循环执行第二次的时候会报这个错,

这时候把str 当bytes,报错,该对象不可调用(不是函数)

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值