Форум программистов, компьютерный форум, киберфорум
Python: Сети
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 2
Регистрация: 14.06.2015
Сообщений: 60

Многопоточный сервер (tcp), который общается с 500 контроллерами

11.11.2017, 23:01. Показов 2799. Ответов 0
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день

помогите доработать или помогите за оплату
Кликните здесь для просмотра всего текста
нужно сделать многопоточный сервак, который одновременно держит несколько сессий (показать на примере хотя бы 3 одновременно работающих контроллеров), получая данные по ним. Контроллеры должны работать по графику. Файл прошивки должен отправлялся от сервака к контроллерам (но считку данных на той стороне не реализовывали, те у кого я уточнял). Все логи выводятся в консоль


server.py
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#Модуль socket для сетевого программирования
from socket import *
 
#данные сервера
host = 'localhost'
port = 777
addr = (host,port)
 
#socket - функция создания сокета 
#первый параметр socket_family может быть AF_INET или AF_UNIX
#второй параметр socket_type может быть SOCK_STREAM(для TCP) или SOCK_DGRAM(для UDP)
tcp_socket = socket(AF_INET, SOCK_STREAM)
#bind - связывает адрес и порт с сокетом
tcp_socket.bind(addr)
#listen - запускает прием TCP
tcp_socket.listen(1)
 
#Бесконечный цикл работы программы
while True:
    
    #Если мы захотели выйти из программы
    question = input('Do you want to quit? y\\n: ')
    if question == 'y': break
    
    print('wait connection...')
    
    #accept - принимает запрос и устанавливает соединение, (по умолчанию работает в блокирующем режиме)
    #устанавливает новый сокет соединения в переменную conn и адрес клиента в переменную addr
    conn, addr = tcp_socket.accept()
    print('client addr: ', addr)
    
    #recv - получает сообщение TCP
    data = conn.recv(1024)
    #если ничего не прислали, завершим программу
    if not data:
        conn.close()
        break
    else:
        print(data)
        #send - передает сообщение TCP
        conn.send(b'Hello from server!')
        #close - закрывает сокет
        conn.close()
    
tcp_socket.close()
client.py
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
from socket import *
import sys
 
host = 'localhost'
port = 777
addr = (host,port)
 
tcp_socket = socket(AF_INET, SOCK_STREAM)
tcp_socket.connect(addr)
 
 
data = input('write to server: ')
if not data : 
    tcp_socket.close() 
    sys.exit(1)
 
#encode - перекодирует введенные данные в байты, decode - обратно
data = str.encode(data)
tcp_socket.send(data)
data = bytes.decode(data)
data = tcp_socket.recv(1024)
print(data)
 
 
tcp_socket.close()
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
11.11.2017, 23:01
Ответы с готовыми решениями:

Многопоточный TCP сервер
Доброго времени суток! Я уже долгое время пытаюсь написать сервер, который может принимать много соединений с многими клиентами...

Многопоточный TCP сервер
Здравствуйте. Хочу реализовать САБЖ. Сделал сервер, слушающий порт, и передающий дискриптор входящего соединения потоку. В потоке создается...

Многопоточный TCP сервер
Привет всем. У меня есть задача написать клиент-серверное приложение, с определенными условиями. С сабжем я еще не работал, поэтому...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
11.11.2017, 23:01
Помогаю со студенческими работами здесь

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

Многопоточный TCP сервер
Доброго времени суток друзья, имеется у меня вопрос хочу сделать многопоточный сервер TCP что бы к нему могло подключится примерно 700...

Многопоточный TCP сервер
Пытаюсь написать многопоточный сервер, для работы с БД. Цель в том, чтоб к серверу смогло подключиться сразу несколько пользователей и...

Многопоточный сервер TCP: разослать сообщения по всем клиентам
Есть tcp сервер, который принимает данные от клиентов и выводит в консоль, и дает ответ клиенту. Уже сутки не могу решить одну...

Как написать многопоточный tcp сервер, рассчитанный на множество подключений
Всем привет, подскажите как написать tcp сервер, на tcp сокетах, к которому постоянно буду пытаться подключится много клиентов, но сервер...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это дополнительная запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru