Wątek przeniesiony 2023-04-24 17:38 z Inżynieria oprogramowania przez Riddle.

jak działa program zdalny pulpit/teamviewer

0

Ciekawi mnie jak od strony programistycznej mozna stworzyć program na wzór zdalnego pulpitu (remote desktop) w windows lub teamviewer -
widzimy w czasie rzeczywistym jak poruszą się mysz, itd
o ile zdalny pulpit (systemowy) pewnie ma ułatwione zadanie (bo wykorzystuje funkcje systemowe), to co z teamviewerem ?
robi screena co pareset milisekund i przesyła ?!

0

Tak samo wykorzystuje funkcje systemowe. Transmitować pulpit to juz i zwykłe przeglądarki potrafią od dawna.

0

hmm spytałem chat gpt o to, podał przykładowy kod w c# :D ale bardziej chodziło mi jak to się robi, gdy się nie ma gotowej kontrolki (tutaj jest)

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Runtime.InteropServices;
using RDPCOMAPILib;

namespace RemoteDesktopClient
{
    public partial class Form1 : Form
    {
        private RDPSession rdpSession;

        public Form1()
        {
            InitializeComponent();
            rdpSession = new RDPSession();
            rdpSession.OnAttendeeConnected += RdpSession_OnAttendeeConnected;
            rdpSession.Open();
        }

        private void RdpSession_OnAttendeeConnected(object pAttendee)
        {
            IRDPSRAPIAttendee attendee = (IRDPSRAPIAttendee)pAttendee;
            attendee.ControlLevel = CTRL_LEVEL.CTRL_LEVEL_INTERACTIVE;
            ((Control)attendee.RemoteControl).Dock = DockStyle.Fill;
            this.Controls.Add((Control)attendee.RemoteControl);
        }
    }
}
2

to co z teamviewerem ?

Z tego co wiem to teamviewer używa swojego własnego protokołu, do którego nie ma publicznie dostępnej dokumentacji. Strzelam, że jest to pewna wariacja Remote FrameBuffer używanego przez VNC. Jeśli ciekawią Cię szczegóły techniczne screen sharingu to zagłęb w remote frame buffer właśnie, który ma swoje otwarte RFC https://datatracker.ietf.org/doc/html/rfc6143

RDP to trochę inna para kaloszy, bo to fundamentalnie nie jest forma screen sharingu a pełnego, zdalnego logowania się do maszyny na istniejącego użytkownika. Nie dzielisz takiego zdalnego pulpitu z inną osobą bo ten sam użytkownik nie może być zalogowany z dwóch rożnych miejsc, jeżeli osoba A jest zalogowana na pewnego użytkownika lokalnie bądź przez RDP, a potem osoba B zaloguje się na tego samego użytkownika inną sesją, to osoba A zostanie wylogowana.

1

@several nie do końca masz racje. Na serwerze terminali (piszę o windowsach z lini serwerowej) to czy użytkownik będzie ograniczony do jednej sesji jest konfigurowalne, więc nic nie stoi na przeszkodzie, aby jeden użytkownik był zalogowany kilka razy.

1 użytkowników online, w tym zalogowanych: 0, gości: 1