【发布时间】:2021-08-10 09:27:01
【问题描述】:
(使用 Python 3)我正在尝试连接服务器和客户端并简单地从一个消息发送到另一个消息,但我不知道为什么会收到这个奇怪的错误:OSError: [WinError 10057]。有谁知道为什么会这样?我做了一些研究但没有找到任何东西,我认为我在制作全局变量时出错了,还是消息编码和解码的问题?
这是我的完整错误:
文件“server_side.py”,第 34 行,在 壳()
文件“server_side.py”,第 6 行,在 shell 中 s.send(command.encode('utf-8'))
OSError: [WinError 10057] 不允许发送或接收数据的请求,因为套接字未连接并且(当使用 sendto call) 没有提供地址
这是我的服务器端代码:
import socket
def shell():
command = input('[+] Insert command: ')
s.send(command.encode('utf-8'))
message = target.recv(1024)
print(message.decode('utf-8'))
s = ''
target = ''
ip = ''
def server():
global s
global target
global ip
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR,1)
s.bind(('192.168.1.109', 54321))#target ip, port more bit isti
s.listen(5)
print('[+] Listening for connections')
target, ip = s.accept()
print('[+] Connection established from: %s' %str(ip))
server()
shell()
这是我的客户端代码:
import socket
def shell():
command = sock.recv(1024)
message = 'Hello there'
sock.send(message.encode('utf-8'))
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.connect(('192.168.1.109', 54321)) #home ip
shell()
sock.close()
我在服务器端示例中的命令输入应该是单词:Hello,或者类似的东西。
【问题讨论】:
-
您是否考虑过查找 Winsock 错误 10057?
标签: python sockets error-handling serversocket