我在Python中使用套接字制作聊天应用程序,但当我尝试从不同的计算机连接时,它会说:
C:\用户\James\OneDrive\Documents\Python\Projects\Gui聊天\client.pyw[WinError 10060]连接尝试失败,因为连接方在一段时间后没有正确响应,或者建立的连接失败,因为连接的主机没有响应
这是套接字的服务器代码:
host = socket.gethostbyname(hostname)
port = 55555
server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server.bind((host, port))
print(f"IP: {server.getsockname()[0]}\nPORT: {server.getsockname()[1]}")
server.listen()
我还有一个while True
循环接受所有请求:
while True:
client, address = server.accept()
print(f"Connected with {str(address)}")
在客户端,这是套接字代码:
IP = simpledialog.askstring("IP", "Enter IP address", parent=root) # "192.168.1.252" # input("Enter IP: ")
nickname = simpledialog.askstring("Nickname", "Choose a nickname", parent=root)
client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
try:
client.connect((IP, 55555))
except Exception as e:
print(e)
该程序每次都要求IP地址,当我为服务器计算机输入正确的IP时,它会出现上面的错误。如果我尝试从同一台计算机连接,并且它们都在同一个网络上,它就可以工作。它最近在工作,现在刚刚停止工作。
更新:我已将服务器ip设置为0.0。0.0,我已设置端口转发规则,我已检查防火墙并允许传入和传出连接,我已使用以下结果运行nmap:
首先尝试在localhost
或127.0上绑定服务器。0.1
。
检查计算机的默认计算机/antivurus
防火墙(服务器所在的位置)是否允许在端口55555
上进行连接。
如果带有客户端的计算机在您的家庭网络之外,请指向路由器公共IP地址,并确保路由器上有端口转发设置。
你确定你在客户端写入的IP是正确的吗?
用服务器转到你的计算机并检查那个IP。
Windows:转到cmd
或Power Shell
并键入ipconfig
,然后找到
部分IPv4地址
并查看您在那里的地址。
Linux/MacOS转到你的终端,键入ifconfig-a
,它应该在那里的某个地方,但是我没有这些系统,所以我不能为你测试它。如果它不工作尝试搜索如何
找出。
在套接字最终接受另一端消失的情况下,什么指定了这个超时?是操作系统(Ubuntu 11.04),还是来自TCP/IP规范,还是套接字配置选项?
在一个简单的客户端-服务器TCP套接字中,当我试图在Android Studio中创建客户端套接字时,遇到了一个问题。导致错误的指令是<code>Sockets=new Socket(主机名,端口) 我使用的端口是 1993,我尝试了变量的一些值: 在每种情况下,应用程序都会因为这个错误而停止,下面的错误属于第一点,其他的得到类似的错误。 Eclipse中的相同指令工作,我在命令行上使用服务器“n
问题内容: 我已经用套接字卡住了4h,我使用的方式是只有一个应用程序作为客户端和服务器,一旦客户端连接, 它将与新客户端一起打开theard,并等待消息。 一旦消息发送到服务器,客户端将收到响应,该部分正在正常工作。 客户专区的一部分: 服务器支持2条消息,第一条是“列表”,发送一条命令是“获取值”。 如果客户端将请求命令“列表”,它将运行以下命令:有一个“服务器/客户端”,它正在发送请求并接收一
真的需要你帮忙。 我的项目是通过电缆连接两台PC机,并使用tcp套接字将客户端文本框形式的字符串发送到服务器。问题是ATI只能发送一个字符串,然后连接就会关闭。 注意:某个端口上的连接将在表单加载中建立并成功。
问题内容: 如何创建SSL套接字连接? 我真的需要创建密钥库吗?该密钥库应该与我所有的客户端应用程序共享吗? 我用以下代码创建了一个服务器: 我用以下代码在android上创建了一个客户端: 但是当我尝试连接时,会引发以下错误: 问题答案: 您需要一个证书来建立ssl连接,您可以在密钥库中加载证书,也可以加载证书本身。我将显示一些有关keystore选项的示例。 您的代码需要一些参数才能运行: 您
(谢谢大家的时间,你们所给予的帮助对于一个学习型程序员来说是无价的)