Общение через IP-адреса - PullRequest
0 голосов
/ 16 апреля 2019

Я только начинаю изучать вводную книгу по сети и наткнулся на создание простой клиент-серверной программы с использованием TCP.Код для сервера:

import socket as soc
serverport = 12000
server_socket=soc.socket(soc.AF_INET,soc.SOCK_STREAM)
server_socket.bind(('', serverport))

server_socket.listen(2)
max_bytes = 2048

connection_socket, addr = server_socket.accept()
x = connection_socket.recv(max_bytes)
print("Your sender has sent you: ", x.decode())
connection_socket.send('I received your msg'.encode())

connection_socket.close()

и код для клиента:

import socket as soc
servername = 'xx.xx.xx.xxx'  <- In this I put someone's public IP address
serverport = 12000
client_socket=soc.socket(soc.AF_INET,soc.SOCK_STREAM)
client_socket.connect((servername, serverport))
sentence='This is mathmaniage'
client_socket.send(sentence.encode())

#waits
modified_sentence=client_socket.recv(2048)
print(modified_sentence)
client_socket.close()

Если IP идентифицирует хосты, а приведенный выше код должен устанавливать TCP-соединение, и оно работает на моемлокальный хост, почему он не работает на двух разных компьютерах в двух разных сетях?(Как компьютер моего друга и мой, поэтому вместо «xx.xx.xx.xxx» я пишу IP-адрес моего друга)

1 Ответ

1 голос
/ 17 апреля 2019

Это немного сложнее, чем вы думаете, ваш друг должен иметь статический IP-адрес и переадресацию портов.

Подробнее здесь https://en.wikipedia.org/wiki/Port_forwarding

И вы должны проверить, блокирует ли ваш провайдер ваш запрос.

Простым решением является VPN, вы можете использовать бесплатное программное обеспечение для быстрой и простой настройки VPN с вашим другом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...