Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

lab_4 / Socket_server

.py
Скачиваний:
0
Добавлен:
12.02.2024
Размер:
1.72 Кб
Скачать
#!/usr/bin/env python3
import socket
import threading
import signal


stop_flag = False

def start():
    # Создаем сокет
    server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    server_socket.bind(('192.168.1.7', 1234))
    server_socket.listen(5)

    print("Сервер: Ожидание подключения…")
    # Принимаем подключение от клиента
    client_socket, addr = server_socket.accept()
    print("Сервер: Принято подключение от", addr)

    loop_cycle(server_socket, client_socket)

def loop_cycle(server_socket, client_socket):
    global stop_flag
    while True:

    # Читаем данные от клиента
        data = client_socket.recv(1024).decode('utf-8')
        print("Сервер: Получено сообщение от клиента:", data)

    # Обработка данных (в данном случае, просто отправляем обратно)
        response = "Принято: " + data
        client_socket.send(response.encode('utf-8'))

    # Закрываем соединение с клиентом  
        if data == "exit" or stop_flag:
            response = 'exit_1'
            client_socket.send(response.encode('utf-8'))
            client_socket.close()
            server_socket.close()
            print("Сервер: Закрыто соединение с клиентом.")
            break


def signum(signum, frame):
    global stop_flag
    print("\nInterrupt by Ctrl+C")
    stop_flag = True

if __name__ == "__main__":
    serv = threading.Thread(None, start, name="MainServer")
    serv.start()
    signal.signal(signal.SIGINT, signum) 
Соседние файлы в папке lab_4