Python -建立套接字连接(服务器-目标)时出错



(使用Python 3)我试图连接服务器和客户端并简单地从一个发送消息到另一个,但我不知道为什么我得到这个奇怪的错误:OSError: [WinError 10057]。有人知道为什么会这样吗?我做了一点研究,但没有发现任何东西,我认为我犯了一个错误时,使全局变量,或者它的东西与消息编码和解码?

这是我的完整错误:

文件"server_side.py",第34行,在shell ()

文件"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()

在server_side的例子中,我的命令输入应该是单词:Hello,或者类似的东西。

您必须将shell()函数置于无限循环中,并且您必须运行服务器端代码,然后运行客户端代码。

这是一个稍微改变的代码:服务器端代码:

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))
while True:
server()
shell()
s.close()
客户端代码:
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
while True:
shell()
sock.close()

相关内容

最新更新