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

2024-10-01 07:10:52 发布

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

因此,我最近开始测试套接字,并成功地创建了一个服务器和客户端,当我在同一台电脑上运行它们时,它们都在一起工作。但是,当我把服务器放在不同的计算机上时,会出现以下错误:“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()

我的委托人:

^{pr2}$

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

我试着在网上查这个,但由于我对python还很陌生,所以我不太了解。在

告诉我有什么需要我澄清的。在


Tags: import服务器datashiftosmainsocketconn
1条回答
网友
1楼 · 发布于 2024-10-01 07:10:52

端口似乎由于防火墙而被阻止。在

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

在连接之前,还应使用socket.settimeout(),以便连接在给定的秒数内超时。在

相关问题 更多 >