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

本文分享了在Socket编程中遇到的常见错误——尝试直接从原始Socket接收数据,解决办法是使用accept()获取连接后的连接对象conn,而非原始Socket。确保正确使用conn.recv()进行数据接收。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今晚在学习Socket编程的时候,遇到了一个错误。在服务端接受数据的时候总是出现一个错误:OSError: [WinError 10057] 由于套接字没有连接并且(当使用一个 sendto 调用发送数据报套接字时)没有提供地址,发送或接收数据的请求没有被接受。

解决方案:

conn, addr = s.accept()
print('Connected with ' + addr[0] + ':' + str(addr[1]))
#接受数据
data = s.recv(4096)
print(data)

s是指Socket,在接受数据是,我们应该用s.accept返回的conn来接受数据。

data = s.recv(4096)这个应该改为:
data = conn.recv(4096)
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值