gpt4 book ai didi

python - 为什么我的 python 套接字不能连接到另一台计算机?

转载 作者:太空宇宙 更新时间:2023-11-04 02:55:48 27 4
gpt4 key购买 nike

所以我最近开始测试套接字,我已经设法创建了一个服务器和客户端,当我在同一台电脑上运行它们时,它们可以一起工作。但是,当我将服务器放在不同的计算机上时,出现以下错误:“”TimeoutError:[WinError 10060] 连接尝试失败,因为连接方在一段时间后没有正确响应,或者建立连接失败,因为连接的主机未能响应""

这是我的服务器:

import socket
import pyautogui
import os

computerIP = socket.gethostbyname(socket.gethostname())

def Main():
host = computerIP
port = 5000
value = 0
mySocket = socket.socket()
mySocket.bind((host,port))

mySocket.listen(1)
conn, addr = mySocket.accept()
print ("Connection from: " + str(addr))
while True:
data = conn.recv(1024).decode()
if not data:
break
elif data == "shift":
pyautogui.keyDown("shift")
elif data == "relshift":
pyautogui.keyUp("shift")
elif data == "logout":
os.popen("shutdown -l")
elif data == "click":
pyautogui.click()
pyautogui.click()
print ("from connected user: " + str(data))
data = str(data).upper()
print ("sending: " + str(data))
conn.send(data.encode())

conn.close()

if __name__ == '__main__':
Main()

我的客户:

import socket


def Main():
host = #same ip as server
port = 5000

mySocket = socket.socket()
mySocket.connect((host,port))

message = input(" -> ")

while message != 'q':
mySocket.send(message.encode())
data = mySocket.recv(1024).decode()

print ('Received from server: ' + data)

message = input(" -> ")

mySocket.close()

if __name__ == '__main__':
Main()

操作系统:Windows 8.1Python 版本:3.4

我试着在互联网上查找这个,但由于我是 python 的新手,所以我不太了解。

如果有什么需要澄清的,请告诉我。

最佳答案

看起来端口由于某些防火墙而被阻止。

使用 socket.connect_ex() 而不是 socket.connect()。如果连接成功,它将返回 0,否则 errno 变量的值将帮助您调试连接失败的原因。

在连接之前也使用socket.settimeout() 使连接在给定的时间超时。秒。

关于python - 为什么我的 python 套接字不能连接到另一台计算机?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42439180/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com