Несколько сокетов Python - потоки - PullRequest
0 голосов
/ 27 октября 2019

В качестве моего первого мини-проекта я попытался создать чат-клиент-сервер на Python. Проблема в том, что сервер не может отправить входящее сообщение любому другому узлу, кроме отправителя. Я создал список хостов и попытался перебрать его во время отправки, но он также не работает. Не могли бы вы мне немного помочь? Я также открыт для предложений, новичок здесь.

Серверный скрипт:

import socket
from _thread import *

hostList = []
address = '192.168.0.31'
port = 10101

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind((address, port))
s.listen(5)


def clientthread(conn):

    while True:
        data = conn.recv(1024)
        print(str(data)[2:-1])

        for host in hostList:
            conn.sendto(data, host)


while True:
    conn, addr = s.accept()
    print("Connected with: ", addr)
    start_new_thread(clientthread, (conn,))
    hostList.append(addr)

Клиентский скрипт:

    import socket
from _thread import *

nick = input("Enter your nickname: ")
adres = '192.168.0.31'
port = 10101

def recvData(s):
    data = s.recv(1024)
    print(str(data)[2:-1])

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((adres, port))

while True:
    s.sendall((nick+": "+input()).encode())
    start_new_thread(recvData, (s,))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...