| Autor |
Beitrag |
Andreas Pfau
      
Beiträge: 997
|
Verfasst: Sa 19.04.03 11:56
Hallo,
ich will mir ein Tool schreiben, das es mir erlaubt, 2 über Ethernet (TCP/IP) vernetzte PCs mit nur einem Monitor zu betreiben.
Ich stelle mir das so vor, dass auf jedem PC das Tool läuft, mehrmals pro Sekunde Screenshots macht, und über Netzwerk an den anderen PC schickt, so dass auf jedem PC am Monitor ein kleines Fenster mit dem Screen des anderen PCs zu sehen ist. Besser gesagt, ist das Fenster des inaktiven PC unsichtbar, damit es nicht auf dem Screenshot erscheint.
Screenshots zu machen ist kein Problem, und ich komprimiere sie dann mit JPEG, auch kein Problem, aber wie versende ich Daten über's Netzwerk, z.B. einen Stream, wie ruft der andere PC die Daten ab? Ich habe so was noch nie gemacht, sonst würde ich ja kein neues Topic posten, bitte helft mir!
_________________ Life is a bad adventure, but the graphic is really good!
|
|
FloSch
      
Beiträge: 129
|
Verfasst: Sa 19.04.03 12:58
Obwohl ich für solche Aufgaben eher die Indy-Komponenten verwenden würde ([url] www.nevrona.com/indy[/url]; Beispiel ist dabei):
www.delphi-forum.de/viewtopic.php?t=2632
Grüße
Florian
|
|
Andreas Pfau 
      
Beiträge: 997
|
Verfasst: Sa 19.04.03 14:08
Das mit den Sockets ist toll, sieht einfach aus.
aber was sind das für Kompos? Also wie heißt diese Socket-Kompo, welche Parameter muss ich wie setzen?
_________________ Life is a bad adventure, but the graphic is really good!
|
|
FloSch
      
Beiträge: 129
|
Verfasst: Sa 19.04.03 14:14
| Andreas Pfau hat folgendes geschrieben: | | aber was sind das für Kompos? Also wie heißt diese Socket-Kompo, welche Parameter muss ich wie setzen? |
Client: TClientSocket
Server: TServerSocket
Was meinst du mit Parameter? Steht alles in dem Tutorial.
Grüße
Florian
|
|
DeCodeGuru
      
Beiträge: 1333
Erhaltene Danke: 1
Arch Linux
Eclipse
|
Verfasst: Sa 19.04.03 14:17
Normalerweise findet man die in der Internet-Sparte aber seit Delphi 7 findet man diese dort nicht mehr. Allerdings kann man diese dort trotzdem noch verwenden. Man muss nur die Unit einbinden und die dann per Hand erstellen und das geht natürlich genauso gut 
_________________ Viele Grüße
Jakob
|
|
FloSch
      
Beiträge: 129
|
Verfasst: Sa 19.04.03 14:20
In Delphi 7 findet man meines Wissens eine Art
TTCPServer und TTCPClient (oder so ähnlich  )
Grüße
Florian 
|
|
Andreas Pfau 
      
Beiträge: 997
|
Verfasst: Sa 19.04.03 14:44
Yep, vielen Dank!
Aber @FloSch: Die Parameter stehen N-I-C-H-T im tutorial. da steht nur was von socktes. Was muss ich einstellen bei:
BlockMode
LocalHost
LocalPort
RemoteHost
RemotePort
_________________ Life is a bad adventure, but the graphic is really good!
|
|
FloSch
      
Beiträge: 129
|
Verfasst: Sa 19.04.03 14:55
| Andreas Pfau hat folgendes geschrieben: | Yep, vielen Dank!
BlockMode
LocalHost
LocalPort
RemoteHost
RemotePort |
Ach Eigenschaften meinst du - das sind aber keine Parameter (oder irre ich da?!  )!
Was für eine Komponente ist das (btw: einfach mal F1 auf die Komponente für die Online-Hilfe  Dort findest du auch die Erklärung der Parameter.)?
Grüße
Florian 
|
|
wulfskin
      
Beiträge: 1349
Erhaltene Danke: 1
Win XP
D5 Pers (SSL), D2005 Pro, C, C#
|
Verfasst: Sa 19.04.03 15:15
| FloSch hat folgendes geschrieben: | Ach Eigenschaften meinst du - das sind aber keine Parameter (oder irre ich da?! )!
Was für eine Komponente ist das (btw: einfach mal F1 auf die Komponente für die Online-Hilfe Dort findest du auch die Erklärung der Parameter.)?
Grüße
Florian  |
Hallo Florian,
du brauchst nicht die Augen rollen  , denn es gibt gar keine Hilfe zu den Sockets, in der man nachschauen könnte.
Ich versuch mal soviel zu erklären, wie ich vom Netzwerk weiss: - Port - Ist ein Zahlenwert, der bei beiden Komponenten der selbe sein soll, da sie über diesen komunizieren. Ich würde irgend einen Port nehmen, der noch nicht belegt ist.
- Host - Eine Zeichenkette, in der du die Ip-Adresse des Servers/Clients eintragen musst.
Ich hoffe das hilft!
Gruß wulfskin!
_________________ Manche antworten um ihren Beitragszähler zu erhöhen, andere um zu Helfen.
|
|
FloSch
      
Beiträge: 129
|
Verfasst: Sa 19.04.03 15:22
Hallo,
| wulfskin hat folgendes geschrieben: | du brauchst nicht die Augen rollen , denn es gibt gar keine Hilfe zu den Sockets, in der man nachschauen könnte. |
definitiv falsch!  Bei mir (D5 Prof) existiert zu TServer- und TClientSocket ein Eintrag in der OH.
Auszug aus der OH für Host:
| Online Hilfe hat folgendes geschrieben: |
Die Eigenschaft Host ist ein Alias für die IP-Adresse des Server-Systems.
property Host: string;
Host ist ein String, der den Domänennamen und den Dienst eines bestimmten Systems enthält, wie z.B.:
www.wSite.Com
|
Zitat aus der OH für Port:
| Online Hilfe hat folgendes geschrieben: |
Die Eigenschaft Port enthält die ID, die zur Bezeichnung der Server-Socket-Verbindung benutzt wird.
property Port: Integer;
Mit Hilfe von Port-IDs kann ein einzelnes System, das über die Eigenschaft Host oder Address bezeichnet wird, als Host für mehrere Verbindungen gleichzeitig fungieren. Viele Port-IDs sind per Konvention mit einem bestimmten Dienst (z.B. ftp oder http) verknüpft.
|
Grüße
Florian 
|
|
Andreas Pfau 
      
Beiträge: 997
|
Verfasst: Sa 19.04.03 15:29
Sorry, ja, propertys meine ich.
OK, aber woher weiß ich, welcher Port frei ist???
Und woher weiß ich, welche IP ich verwenden muss???
Ihr müsst wissen, ich habe Nil^ Ahnung von Netzwerk!
_________________ Life is a bad adventure, but the graphic is really good!
|
|
FloSch
      
Beiträge: 129
|
Verfasst: Sa 19.04.03 15:35
Hallo,
| Andreas Pfau hat folgendes geschrieben: | OK, aber woher weiß ich, welcher Port frei ist???
Und woher weiß ich, welche IP ich verwenden muss??? |
Du kannst jeglichen Port > 1024 benutzen.
Bei Host (IP) gibst du den Zielrechner an, mit dem du dich verbinden willst.
Unter Windows 98 erfährst du die IP folgendermaßen:
Start -> Ausführen -> winipcfg
Unter Windows 2000 und höher in den Netzwerkeigenschaften.
Grüße
Florian 
|
|
Andreas Pfau 
      
Beiträge: 997
|
Verfasst: Sa 19.04.03 15:40
OK, nur dass ich richtig verstandne habe:
Also Host nehme ich eine X-Beliebige Zahl, z.B. 2345
Für Host lasse ich den User die IP eintippen. Oder gibt's 'nen API-Call, der das für nich macht, oder zumindest 'ne Liste mit allen vernetzten PCs erstellt, dass der User wählen kann?
_________________ Life is a bad adventure, but the graphic is really good!
|
|
FloSch
      
Beiträge: 129
|
Verfasst: Sa 19.04.03 15:48
| Andreas Pfau hat folgendes geschrieben: | | Also Host nehme ich eine X-Beliebige Zahl, z.B. 2345 |
Wenn du anstatt Host da noch Ping einfügst stimmts (bis maximal 65535 glaube ich)!
| Andreas Pfau hat folgendes geschrieben: |
Für Host lasse ich den User die IP eintippen.
|
Korrekt.
| Andreas Pfau hat folgendes geschrieben: |
Oder gibt's 'nen API-Call, der das für nich macht, oder zumindest 'ne Liste mit allen vernetzten PCs erstellt, dass der User wählen kann? |
Hmmm, schau mal auf [url]swissdelphicenter.ch[/url]. Ich glaube da gab es mal ein Beispiel.
Grüße
Florian
|
|
Andreas Pfau 
      
Beiträge: 997
|
Verfasst: Sa 19.04.03 16:49
@FloSch:
| Zitat: | | Wenn du anstatt Host da noch Ping einfügst stimmts |
Du meinst nicht Ping, sondern Port, gell?
OK, aber das nächste Problem wartet. Ich habe die Routine, die die Screenshots macht. Warum ist die so lahm? Es gibt doch professionelle Backdoors, die das gleiche machen, sind die auch so lahm? Das ruckelt ohne Ende. Wer kennt als eine schnelle Methode, einen Screenshot zu machen, und das ganze zu resizen?
_________________ Life is a bad adventure, but the graphic is really good!
|
|
FloSch
      
Beiträge: 129
|
Verfasst: Sa 19.04.03 16:58
| Andreas Pfau hat folgendes geschrieben: |
| Zitat: | | Wenn du anstatt Host da noch Ping einfügst stimmts |
Du meinst nicht Ping, sondern Port, gell?
|
Argh! Ja klar - sorry
| Andreas Pfau hat folgendes geschrieben: |
OK, aber das nächste Problem wartet. Ich habe die Routine, die die Screenshots macht. Warum ist die so lahm? Es gibt doch professionelle Backdoors, die das gleiche machen, sind die auch so lahm? Das ruckelt ohne Ende. Wer kennt als eine schnelle Methode, einen Screenshot zu machen, und das ganze zu resizen? |
Ich glaube nicht das die Backdoors jedes mal Screenshots erstellen, sondern einen anderen Algorithmus anwenden oder? Ansonsten lager das Screenshot erstellen in einen eigenen Thread aus.
Grüße
Florian 
|
|
Andreas Pfau 
      
Beiträge: 997
|
Verfasst: Sa 19.04.03 17:01
Feine, Sache, so ein thread, aber irgendwo ist der Wurm drin. Es Ruckelt trotzdem. Daran tüftle ich schon seit Stunden. Muss halt den Fehelr suchen.
_________________ Life is a bad adventure, but the graphic is really good!
|
|
Andreas Pfau 
      
Beiträge: 997
|
Verfasst: Sa 19.04.03 21:53
Juhu, ich hab's! Ich habe es so gelöst, dass ich immer nur kleine Rects (1% des gesamtne Screens) übertrage, und so den Screenshot "Stückchenweise" aktualisiere. Das langt für meine Zwecke. So kann ich auch den Traffic regulieren, denn ich habe nur eine 10MBit-Verbindung 
_________________ Life is a bad adventure, but the graphic is really good!
|
|
wulfskin
      
Beiträge: 1349
Erhaltene Danke: 1
Win XP
D5 Pers (SSL), D2005 Pro, C, C#
|
Verfasst: So 20.04.03 02:11
| Andreas Pfau hat folgendes geschrieben: | | OK, aber das nächste Problem wartet. Ich habe die Routine, die die Screenshots macht. Warum ist die so lahm? Es gibt doch professionelle Backdoors, die das gleiche machen, sind die auch so lahm? Das ruckelt ohne Ende. Wer kennt als eine schnelle Methode, einen Screenshot zu machen, und das ganze zu resizen? |
Vor langer, langer Zeit, da gab es noch das alte DF  , hatte wir das Thema schonmal. Als Ergebnis kam heraus, dass die Übertragung in Echtzeit nur möglich ist, wenn man alle Messages weiterleitet und dann entsprechend auswertet. Zu damaliger Zeit wusste keiner wie dies funktioniert und deshalb hatte man auch keine Lösung gefunden. Vielleicht hast du ja diesesmal Glück  !
Aber interessantes Thema!
| FloSch hat folgendes geschrieben: | | definitiv falsch! Bei mir (D5 Prof) existiert zu TServer- und TClientSocket ein Eintrag in der OH. |
Dann muss ich mich entschuldigen. Bei mir D5 STD gibt es leider keine Hilfe dazu. Wurde wohl vergessen  .
Gruß wulfskin!
_________________ Manche antworten um ihren Beitragszähler zu erhöhen, andere um zu Helfen.
|
|
Andreas Pfau 
      
Beiträge: 997
|
Verfasst: So 20.04.03 11:42
Hallo nochmal,
ich komme grade an den Netzwerkpart im code. Da ich mich damit wie gesagt kaum auskenne, habe ich auf meiner HDD rumgestöbert und ein Beipsile (Delphi\Demos\Internet\NetChat) gefunden. Aber warum haben die als Host "Localhost" eingetragen? Ich denke, dass muss eine IP sein? Oder kann man da auch den Namen des PCs eintragen (meine heißen PC1 und PC2)??? Oder ist das nur eine "Vorgabe", damit ich die IPs eintippen kann?
_________________ Life is a bad adventure, but the graphic is really good!
|
|