Я новичок в Python. Я пишу серверную программу и клиентскую программу. Здесь сервер играет роль распределения данных между несколькими клиентами. Работает отлично. Моя задача - распространять данные с сервера с помощью файла server.py. Когда кто-нибудь из клиентов захочет, он просто запустит client.py на своем ноутбуке и получит результаты. Но здесь Сервер начинает распространять данные. IP, используемый сервером, был 127.0.1.1. Это не берет сеть, предоставленную IP. Как заставить это использовать ip, предоставленный LAN. Когда клиенты с другого компьютера исполняют файл clients.py. Это показывает, что ошибка соединения отклонена. Обратите внимание, что мы все связаны в локальной сети. Как это решить и заставить клиентов получать данные.
Вот пример кода клиента:
import socket
import os
from threading import Thread
import socket
import time
s = socket.socket()
host = '127.0.1.1'
port = 10016
print(host)
s.connect((host, port))
while True:
print(s.recv(1024))
s.close()
Пример кода сервера:
import socket
import os
from threading import Thread
import thread
import threading
import time
import datetime
def listener(client, address):
print ("Accepted connection from: ", address)
with clients_lock:
clients.add(client)
try:
while True:
client.send(a)
time.sleep(2)
finally:
with clients_lock:
clients.remove(client)
client.close()
clients = set()
clients_lock = threading.Lock()
host = socket.gethostname()
port = 10016
s = socket.socket()
s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
s.bind((host,port))
s.listen(3)
th = []
print ("Server is listening for connections...")
while True:
client, address = s.accept()
timestamp = datetime.datetime.now().strftime("%b %d %Y,%a, %I:%M:%S %p")
a = "Hi Steven!!!" + timestamp
th.append(Thread(target=listener, args = (client,address)).start())
s.close()