Соединение с использованием библиотеки "socket" - PullRequest
0 голосов
/ 14 января 2020

Я работаю над программой python, которая позволит мне отправлять и получать данные между ПК. Мне удалось заставить его работать в моей локальной сети, и я хотел настроить его так, чтобы он мог соединяться с inte rnet. Я открыл порт 1234 в своем маршрутизаторе и использовал локальный IP-адрес на server.py и pucli c IP на клиенте, но server.py, похоже, не получает никаких данных. Что я здесь не так делаю?

Пример кода выглядит примерно так (он работает для локальных сетей, но только на отдельных ПК, IP-адрес, конечно, только пример и, вероятно, не подойдет никому еще):

server.py:

import socket
import time
import pickle


IP = "192.168.1.69"
PORT = 1234

server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

server_socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)

server_socket.bind((IP, PORT))

server_socket.listen()

print(f'Listening for connections on {IP}:{PORT}...')

client_socket, client_adress = server_socket.accept()
print(pickle.loads(client_socket.recv(1024)))
client_socket.send(pickle.dumps('DONE'))
time.sleep(1)
client_socket.send(pickle.dumps('boi'))

print(client_socket, client_adress)

client.py:

import socket
import pickle
import time

IP = "192.168.1.69"
PORT = 1234
client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

client_socket.connect((IP, PORT))

client_socket.setblocking(False)

client_socket.send(pickle.dumps("NICE."))
time.sleep(1)
print(pickle.loads(client_socket.recv(1024)))
time.sleep(1)
print(pickle.loads(client_socket.recv(1024)))

Спасибо.

...