Python网络套接字[WinError 10053]

2024-03-28 22:57:34 发布

您现在位置:Python中文网/ 问答频道 /正文

根据我正在学习的课程,我正在尝试编写一个非常简单的“网络套接字”(服务器)程序和“网络连接”(客户端)程序。当我尝试使用VMWare Workstation 15中的Kali Linux虚拟机上的“网络连接”程序进行连接时,收到[WinError 10053]。Kali VM网络适配器正在NAT模式下运行

Host Computer ipconfig

Kali VM ifconfig

服务器

import socket

SRV_ADDR = input("Type the server IP address: ")
SRV_PORT = int(input("Type the server port: "))

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind((SRV_ADDR, SRV_PORT))
s.listen(1)
print("Server started! Waiting for connections...")
connection, address = s.accept()
print('Client connected with address:', address)
while 1:
    data = connection.recv(1024)
    if not data: break
    connection.sendall(b'-- Message Received --\n')
    print(data.decode('utf-8'))
connection.close()

客户

import socket

SER_ADDR = input("Type the server IP address: ")
SER_PORT = int(input("Type the server port: "))

s2 = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s2.connect((SER_ADDR, SER_PORT))
print("Connection Established")

message = input("Message to send: ")
s2.sendall(message.encode())
s2.close()

当我从本地计算机运行“网络套接字”程序时,我可以使用Netcat从Kali VM成功连接,并发送数据

Successful - Server Side

Successful - Client Side

如果我尝试从Kali运行“网络连接”程序,我会成功连接,但当我发送数据时,我会得到WinError 10053和“网络连接”程序中对第13行的引用

Failure - Server Side

Failure - Client Side

任何帮助都将不胜感激。很抱歉,如果没有正确发布,这是我第一次发布到论坛:)


Tags: the程序inputserverportaddresstypesocket
1条回答
网友
1楼 · 发布于 2024-03-28 22:57:34

问题是,在客户机向服务器发送消息后,他关闭了套接字,但服务器仍试图接收数据

如果您计划只发送一条消息,那么应该从服务器代码中删除循环

否则,您可以通过try/except在服务器中包装recv行来处理这种情况

相关问题 更多 >