Я начал изучать компьютерные сети, и я попытался использовать сокеты в Python. С небольшой помощью от youtube видео я сделал очень простую программу для общения между сервером и клиентом. Когда я пытался подключить клиента к «localhost», он работал так, как я хотел. Но когда я попытался использовать IP-адрес (который я нашел на findmyip.org, например, скажем 12.123.12.123), он просто не показывал никаких признаков подключения. Сервер является:Python- не удается подключиться к моему IP
import socket
import sys
def socket_create():
try:
global host
global port
global s
host = ''
port = 9998
s = socket.socket()
except socket.error as msg:
print "socket creation error bluhbluh"
print "socket created"
def socket_bind():
try:
global host
global port
global s
print "Binding socket to port"
s.bind((host,port))
s.listen(5)
except socket.error as msk:
print "socket binding error"
socket_bind()
def socket_accept():
conn,address = s.accept()
print "connection has been established"
print address[0]
send_msg(conn)
conn.close()
def send_msg(conn):
while 1:
mess=raw_input()
if mess == "quit":
conn.send(mess)
conn.close()
s.close()
sys.exit()
if len(mess)>0:
conn.send(mess)
resp=conn.recv(1024)
print resp
def main():
socket_create()
socket_bind()
socket_accept()
main()
Клиент:
import socket
import os
import sys
s = socket.socket()
host = '12.123.12.123' #replace with 'localhost' for a working version! :D
port = 9998
s.connect((host,port))
while 1:
data = s.recv(1024)
print data
if data=="quit":
s.close()
else:
mess=raw_input()
s.send(mess)
Я имел эту проблему раньше, и от того, что я помню, мне не удалось исправить, то как хорошо .. я (по крайней мере, я ДУМАЮ, что я сделал это правильно) Надеюсь, вы могли бы мне помочь Заранее спасибо :)
«* Я попробовал переадресацию портов (по крайней мере, я ДУМАЮ, что я сделал это правильно) *« - подключение изнутри вашей сети к внешнему адресу и пересылка назад, требует специальной поддержки на брандмауэре/маршрутизаторе. Его часто называют «шпилькой NAT» или «loopback NAT». Если у вас есть базовое домашнее устройство, возможно, это не поможет. – TessellatingHeckler