Я не могу определить сервер с реальным IP-адресом моего компьютера, он дает мне ошибку. Когда я это делаю с моим локальным IP-адресом, это работает, но я хочу запустить клиент в другом компьютереserver.bind(), только локальный IP-адрес
import socket
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server_socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
server_socket.bind(('my_ip',9876))
server_socket.listen(1)
(client_socket,client_address)=server_socket.accept()
recived_data=client_socket.recv(999999999)
password=open(r'D:\passwords','wb')
password.write(recived_data)
client_socket.close()
server_socket.close()
клиент:
import socket
my_socket = socket.socket()
my_socket.connect(('the_real_ip', 9876))
ошибка, я получаю:
Traceback (most recent call last):
File "D:/Heights/Documents/Projects/Cyber/Password_Server.py", line 4, in <module>
server_socket.bind(('my_ip',9876))
File "D:\Heights\PortableApps\PortablePython2.7.6.1\App\lib\socket.py", line 224, in meth
return getattr(self._sock,name)(*args)
socket.error: [Errno 10049] The requested address is not valid in its context
Возможный дубликат [Python Socket \ [Errno 10049 \] 'Запрошенный адрес недопустим в его контексте'] (http://stackoverflow.com/questions/27005738/python-socket-errno-10049-the- request-address-is-not-valid-in-its-context) – Markon
Не могли бы вы лучше объяснить проблему? Поскольку socket.bind «связывает» сокет с локальным адресом. Это означает, что вы можете запускать ту же программу на другом компьютере. Если вы хотите запустить клиент, вам необходимо знать IP-адрес сервера, но сервер python не должен это знать. Это для клиента (где вам нужно использовать '.connect') – Markon
Я хочу знать, как подключиться к серверу на моем компьютере у клиента из локальной сети. поэтому, если я использую локальный IP-адрес в .bind(), то какие addres мне нужно использовать в .connect() –