Это мой код для сервера:Server/Client Connection (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
Я noob, объясните более подробно , если я сделаю host = на сервере, он показывает ошибки. Я думаю, что сервер в порядке, потому что он показывает подключенные сообщения, когда я проверяю открытый порт. Я думаю, что проблема с клиентской стороной –