@gd1xza

Проkси на питоне зависает после ответа сервера?

import socket,select

r = socket

sip = r.gethostbyname("lc")
spo = 25565

sock = r.socket(r.AF_INET, r.SOCK_STREAM)
sock.bind(("lc",5555))
sock.listen()

while True:
    c = sock.accept()[0]
    print("Client connected")

    s = r.socket(r.AF_INET, r.SOCK_STREAM)
    s.connect((sip,spo))
    print("Server connected")

    jj = [c,s]

    while True:
        kk = jj
        if select.select(kk,[],[],1):
            if c in kk:
                data = c.recv(10000)
                l = len(data)
                if l < 1:
                    print("Client disconnected")
                    s.close()
                    break
                print("[Client -> Server] ",l)
                s.send(data)
            if s in kk:
                data = s.recv(100000)
                l = len(data)
                if l < 1:
                    print("Server disconnected")
                    c.close()
                    break
                print("[Server -> Client] ",l)
                c.send(data)


Client connected
Server connected
[Client -> Server]  11
[Server -> Client]  9716
[Client -> Server]  10
[Server -> Client]  10
Client disconnected
Client connected
Server connected
[Client -> Server]  19
[Server -> Client]  4
# после ничего #
  • Вопрос задан
  • 43 просмотра
Решения вопроса 1
@galaxy
select() не меняет свои аргументы, а возвращает массивы сокетов, готовых к чтению/записи/с исключением.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы