2017-02-15 4 views
0

Я начал работать в чате python, используя сокеты. У меня возникла проблема с подключением многих клиентов к серверу, потому что если они подключатся к одному порту, они не смогут общаться в прямом эфире, потому что каждый клиент будет ждать в очереди до тех пор, пока порт не станет бесплатным. Теперь моя идея состояла в том, чтобы выбрать (на стороне сервера), сколько клиентов я хочу сначала, а затем открыть этот диапазон портов, используя простые функции и потоки. Теперь моя проблема заключается в том, что по размеру моего клиента я использую try, когда точка «try» подключается к порту. Сначала я подумал, что если кто-то уже подключится к некоторому порту, он выдаст ошибку, поэтому клиент просто перейдет к следующему порту, но я забыл об этой строке. Есть идеи?Попытка создать чат Python

+0

Используйте поток, чтобы клиенты могли использовать один и тот же порт. – Bojje

+0

Вы можете использовать несколько клиентов для каждого порта прослушивания. В вашем коде должно быть что-то, что предотвращает это. Можете ли вы отправить код обработки входящих соединений? –

+1

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

ответ

0

Ничего, я не понимаю. Моя ошибка заключалась в том, что я открыл новый сокет с каждым потоком, а должен был открыть его однажды в main() func, а затем принять в потоке. Спасибо всем

Смежные вопросы