这是我的代码服务器:服务器/客户端连接(Python)的
import socket
serversocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
host = "192.168.1.3"
port = 8000
print (host)
print (port)
serversocket.bind((host, port))
serversocket.listen(5)
print ('server started and listening')
while 1:
(clientsocket, address) = serversocket.accept()
print ("connection found!")
data = clientsocket.recv(1024).decode()
print (data)
clientsocket.send("data is sent".encode())
和客户:
import socket
s = socket.socket()
host ="59.93.199.XXX"
port =8000
s.connect((host,port))
s.send('randomData'.encode())
data = ''
data = s.recv(1024).decode()
print (data)
s.close
我想这个跨两台电脑在互联网上工作。 当我将host =“192.168.1.3”放在客户端时,它可以正常工作,但这只适用于连接到同一网络的计算机。 问题是,当服务器运行时,我检查在线开放端口,服务器显示'找到连接',但它不通过客户端连接到服务器。 我做错了什么? PORT 8000已开放。
192.168.1.3是我的电脑的IP和192.168.1.1是网关 错误,我得到的,当我运行客户端:
Traceback (most recent call last): File "C:\Users\Harsh's\Desktop\aaa.py", line 6, in s.connect((host,port)) ConnectionRefusedError: [WinError 10061] No connection could be made because the target machine actively refused it
被引导。 www.yourgetsignal.com展示其开放。 我有dyanamic ip,但没有重置,为什么它不工作? –
在这种情况下,请将您的服务器绑定到其公共地址,而不是绑定到其本地。或将其绑定到所有可用的接口。 – Hyperboreus
我是小白,请详细解释一下 如果我在服务器上使host =显示错误。 我认为服务器没问题,因为它显示连接的消息,当我检查打开的端口。 我认为问题出在客户端 –