Python的Socket 错误:由于套接字没有连接并且(当使用一个 sendto 调用发送数据报套接字时)没有提供地址,发送或接收数据的请求没有被接受。

Python3.8

Python3.8

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

        小白学习python总是跌跌撞撞,本次是在B站学一个叫“娟姐”的python课程,up主名称是叫Python_子本。学到TCP服务器端和TCP客户端进行通信时,按部就班的写好代码,但是遇到一个服务器端的报错:Socket 错误:由于套接字没有连接并且(当使用一个 sendto 调用发送数据报套接字时)没有提供地址,发送或接收数据的请求没有被接受。

服务器端的代码如下:

from socket import socket , AF_INET,SOCK_STREAM

# AF_INET,用于Intrenet之间的进程通信
# SOCK_STREAM,表示用TCP协议进行编程

# (1)创建socket对象
server_socket = socket(AF_INET,SOCK_STREAM)

# (2)绑定IP地址和端口
ipaddress = '127.0.0.1'
port = 8888
server_socket.bind((ipaddress,port))

# (3)使用Listen开始监听
server_socket.listen(5)
print("服务器已启动!")

# (4)等待客户端的连接
client_socket, client_address = server_socket.accept()

# (5)接收来自客户端的数据
data = server_socket.recv(1024)
# 要求客户端发送过来的数据使utf-8格式进行解码
print("客户端发送过来的数据为:", data.decode('utf-8'))

# (6)关闭socket
server_socket.close()

客户端的代码如下:

import socket
# (1)创建客户端对象
client_socket = socket.socket()

# (2)绑定IP地址和端口
ipaddress = '127.0.0.1'
port = 8888
# 向服务器端发起请求
client_socket.connect((ipaddress,port))
print("与服务器连接建立成功")

# (3)向服务器发送数据,用utf-8格式进行编码
client_socket.send("您好,中国!".encode('utf-8'))

# (4)关闭socket
client_socket.close()
print("数据发送完毕!")

 先运行服务器,再运行客户端之后就会报以下错误:

 查阅资料之后,server_socket是指Socket,但执行accept()的client_socket,所以在接收数据时,我们应该用client_socket.recv(1024)获取client返回过来的数据。其实刚学,我也不太清楚这个逻辑,但是尝试着调整了一下,改成以下代码:

data = client_socket.recv(1024)

便可以成功接收了,估计自己在Python里还有一段路程才能搞清楚这儿的逻辑,目前不能通俗易懂的分享给各位!!!

您可能感兴趣的与本文相关的镜像

Python3.8

Python3.8

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值