python3.x - Python3 socket sendall出现10057

查看:622
本文介绍了python3.x - Python3 socket sendall出现10057的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

在学习python做socket小例子的时候,发现只要是使用sendall就会出现下面的问题.

server_demo:

#!/usr/bin/env python
# _*_coding:utf8_*_

import socket

obj_socket = socket.socket()
# 绑定端口
obj_socket.bind(('127.0.0.1', 9999))
# 设置最大连接数
obj_socket.listen(5)

while True:
    # 阻塞等待客户端连接
    conn, address = obj_socket.accept()
    print(address, conn)
    # 在python2.7中可以直接发送字符串,但是在python3中都是字节
    obj_socket.sendall(bytes('你好', encoding='utf-8'))

client_demo:


#!/usr/bin/env python
# _*_coding:utf8_*_
import socket

obj_socket = socket.socket()

obj_socket.connect(('127.0.0.1', 9999))
# 阻塞至服务器回复  最多接收1024bytes 如果超过会再次接收
res_bytes = obj_socket.recv(1024)
res_str = str(res_bytes, encoding='utf-8')

print(res_str)

obj_socket.close()

搜了很多解决方案,我尝试关闭了防火墙,但是还是没有用。

解决方案

试下

obj_socket.sendall(bytes('你好', encoding='utf-8'))
换成:
conn.sendall(bytes('你好', encoding='utf-8'))

这篇关于python3.x - Python3 socket sendall出现10057的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆