WinPopUp

Da ErrOr

Mitglied
Hey!

Ich hab mal ne grundsätzlich dämliche Idee ... ich habe vor das programm was sicher jeder von euch kennt grundlegend aufzumöbeln ... beinhalten soll es nicht nur Chat funktionen (wie verschiedene Farben der einzelnen User usw.) nein ich möchte als Server auch in der Lage sein meine Lieben LAN-mitglieder ein bisschen zu nerven in dem ich ihn ab und zu den Bildschirm umdrehe oder das cd-Rom rausfahren lasse !

Weiterhin soll es eine Taskleisten funktion besitzen so das es immer im Standby hockt und sich bei ankommender NAchricht meldet ...

im großen und ganzen soll es so werden wie IRC oder ICQ allerdings nur für eine LAN ... ich wäre euch sehr verbunden wenn iihr für mich ein paar tutz habt die ich evtl verwenden kann ...THX:rolleyes:
 

Dario Linsky

Erfahrenes Mitglied
generell lässt sich dazu sagen, dass man sowas wohl am besten (oder zumindest am schnellsten) mit dem winsock-control zu realisieren sein dürfte. sicher gibt's da noch andere alternativen, die auch teilweise besser sind, als das was microsoft da anbietet, aber für normale zwecke reicht erstmal das winsock-control.
zur verwendung davon gibt's in der msdn (und normalerweise auch in jedem einigermassen guten buch über vb) ein beispiel für ein chat-programm mit client und server. ob das ganze jetzt im lokalen netzwerk oder im internet läuft, macht eigentlich keinen unterschied, da beides netzwerke auf tcp/ip-basis sind.
um die remote-funktionen umzusetzen müsstest du dir einfach nur eine art eigenes protokoll ausdenken, bei dem du kommandos an das entsprechende programm schickst. das programm empfängt die daten und wertet diese dann aus. anders funktioniert das im irc-protokoll auch nicht. und für hardwarenahe sachen greifst du dann noch auf api-funktionen zurück.
 

Daniel Toplak

Erfahrenes Mitglied
Also ich kann mich da asphyxia nur anschließen. Bei den Remote-Steuerungen musst du allerdings wirklich einen festen Weg gehen. Und zwar müssen die Funktionen die du auf dem Client ausführen willst tatsächlich im Client-Programm integriert sein. Denn das Server Programm ist nicht in der Lage diese Funktionen auszuführen, sondern es Schickt nur Kommandos die dann das Client-Programm auswertet und entsprechend darauf reagiert.
Wie asphyxia schon gesagt hat, musst du dir da ein eigenen kleinen "Befehlssatz" ausdenken, wie z.B.:
- "#remote:TurnScreen"
- "#remote:OpenCDROM"
- "#remote:CloseCDROM"
- usw.

Gruss Homer
 

Da ErrOr

Mitglied
gibet da irgendwo kleine Opensources ... komm momentan nicht wirklich mit der eigentlichen Chat Funktion klar ...

wäre nett wenn ihr da ein paar auf lager hättet ...

PS.: auf euch kann man sich verlassen ihr seit Klasse !!!
 

Daniel Toplak

Erfahrenes Mitglied
Also Tutorials und Dokumentationen zum WinSock-Steuerelement gibt es haufenweiße im Internet, auch in der MSDN steht ein ganz brauchbares Beispiel drin, wie man einen Server-Anwendung und eine Client-Anwendung erstellt zum Chaten.

Gruss Homer
 

Dario Linsky

Erfahrenes Mitglied
für codebeispiele würd ich einfach mal bei sourceforge, planet source code und vergleichbaren seiten rumstöbern. da findet man eigentlich zu jedem thema was passendes.
ansonsten gibt's soweit ich weiss sogar in der msdn ein kleines beispiel für ein chat-programm mit client und server. das sollte aber trotzdem nicht sonderlich schwer sein - es geht ja eigentlich nur um die verarbeitung von strings. wenn man erstmal ein eigenes "protokoll" entworfen hat, kann man das im client unterscheiden. hol dir doch einfach mal eine beschreibung des irc-protokolls, das funktioniert genau so.

das winsock-control hat ein ereignis namens "onDataArrival", da kommt dann einfach der code rein, mit dem das programm ankommende befehle verarbeitet. mit der methode "SendData" werden daten an einen anderen rechner (in deinem fall zum server) geschickt.
 

Da ErrOr

Mitglied
So das grundgerüst steht und funzt soweit!!! allerdings hab ich ein neues Problem ... das Programm soll nämlich ein gan bestimmtes design haben! Und deswegen will ich diese komische Windwos status Leiste nich haben ( dieses blaue ding oben =) ) desweiterin weiß nicht wie man am besten die grafiken anordnet ... weißt ... also ich weiß nicht wie ich die zusammenbasteln soll zu einem Programm ... könntet ihr mir evtl. helfen... desweiterin is da noch die Anwesenheits Liste die ich mit einbauen wollte! ...

außerdem versteh ich nicht ganz wie ich vom Server aus dem Clienten sage(per Click) "öffne CD" => Client sucht in seinem Programm nach der Funktion "öffne CD" und führt sie dann aus ...

asou und was meint ihr mit eigenes Protokoll schreiben wie so denn .. wozu brauch ich das???

So soll das Client programm aussehen wenn es fertig is!;)
 

Anhänge

  • chat(client) kopie.jpg
    chat(client) kopie.jpg
    43,6 KB · Aufrufe: 86

Dario Linsky

Erfahrenes Mitglied
also erstmal: design ist nebensache. das wichtige ist immer zuerst, dass programm funktioniert. dann kann man sich gedanken über das layout machen.

um vom server aus das cdrom-laufwerk vom client zu öffnen, musst du ein entsprechendes signal zum client schicken. der client wertet dieses signal aus, und führt die entsprechenden anweisungen aus.
genau das ist auch mit "protokoll" gemeint. du entwirfst ein paar eigene kommandos, die du in beide programmen (client und server) einbaust. vom server schickst du einfach nur strings an den client, und der untersucht die empfangenen strings auf bestimmte befehle. wenn du beispielsweise den befehl "#Command:OpenCDRom!" an den client schickst, dann wird dieser string aufgeteilt. wenn der erste teil des strings "Command" ist, dann wird der zweite teil des strings als befehl behandelt, der eine bestimmte aktion auslöst.
 

Da ErrOr

Mitglied
Allesschön und gut nur das Problem ist 1. wie schick ich denn Befehl zum Client 2.WIE werte ich ihn aus ... 3. kannst du mal ansatzweise zeigen wie der Code für den Client und der Code für dein Server aussehen muß ...

Code:
Server befehl wird geschickt
Code:
Befehl kommt an wird ausgewertet und umgeschrieben(so das die Funktion ausgeführt werden kann)

sorry bin erst 1 Jahr dabei(in der VB ecke):rolleyes: