socket服务端无法传输数据
来源:5-4 ajax、json和xml

零壹科技小蔡
2023-01-31
#socket服务端
import socket
import json
import threading
server = socket.socket()
#绑定到0.0.0.0:8000端口上
server.bind((‘0.0.0.0’, 8000))
server.listen()
def handle_sock(sock, addr):
while True:
# recv方法是阻塞的
tmp_data = sock.recv(1024)
print(tmp_data.decode(“utf8”))
response_template = ‘’'HTTP/1.1 200 OK
Content-Type: application/json
Access-Control-Allow-Origin:http://localhost:63342
{}
‘’'
data = [
{
“name”:“django打造在线教育”,
“teacher”:“bobby”,
“url”:“https://coding.imooc.com/class/78.html”
},
{
“name”: “python高级编程”,
“teacher”: “bobby”,
“url”: “https://coding.imooc.com/class/200.html”
},
{
“name”: “scrapy分布式爬虫”,
“teacher”: “bobby”,
“url”: “https://coding.imooc.com/class/92.html”
},
{
“name”: “django rest framework打造生鲜电商”,
“teacher”: “bobby”,
“url”: “https://coding.imooc.com/class/131.html”
},
{
“name”: “tornado从入门到精通”,
“teacher”: “bobby”,
“url”: “https://coding.imooc.com/class/290.html”
},
]
sock.send(response_template.format(json.dumps(data)).encode(“utf8”))
sock.close()
break
#获取客户端连接并启动线程去处理
while True:
# 阻塞等待连接
sock, addr = server.accept()
#启动一个线程去处理新的用户连接
client_thread = threading.Thread(target=handle_sock, args=(sock, addr))
client_thread.start()
1回答
-
bobby
2023-02-01
#socket服务端 import socket import json import threading server = socket.socket() #绑定到0.0.0.0:8000端口上 server.bind(('0.0.0.0', 8003)) server.listen() def handle_sock(sock, addr): while True: # recv方法是阻塞的 tmp_data = sock.recv(1024) print(tmp_data.decode("utf8")) response_template = '''HTTP/1.1 200 OK Content-Type: application/json Access-Control-Allow-Origin:http://localhost:63342 {} ''' data = [ { "name":"django打造在线教育", "teacher":"bobby", "url":"https://coding.imooc.com/class/78.html" }, { "name": "python高级编程", "teacher": "bobby", "url": "https://coding.imooc.com/class/200.html" }, { "name": "scrapy分布式爬虫", "teacher": "bobby", "url": "https://coding.imooc.com/class/92.html" }, { "name": "django rest framework打造生鲜电商", "teacher": "bobby", "url": "https://coding.imooc.com/class/131.html" }, { "name": "tornado从入门到精通", "teacher": "bobby", "url": "https://coding.imooc.com/class/290.html" }, ] sock.send(response_template.format(json.dumps(data)).encode("utf8")) sock.close() break #获取客户端连接并启动线程去处理 while True: # 阻塞等待连接 sock, addr = server.accept() #启动一个线程去处理新的用户连接 client_thread = threading.Thread(target=handle_sock, args=(sock, addr)) client_thread.start()
这段代码我刚才本地测试过 浏览器访问没问题,我这里端口号改为8003防止和其他端口冲突
00
相似问题
回答 1
回答 2