Server oder Client?

  • VB.NET

Es gibt 19 Antworten in diesem Thema. Der letzte Beitrag () ist von Metal Freak.

    Server oder Client?

    Hey,
    ich habe vor dass ich andere PC's über meinen steuern kann.
    Natürlich gibts dafür schon Programme - aber ich will es selbst machen.

    Nur ich weiß nicht wie ich das machen soll.
    Die Server auf die PC's die ich steuern will oder die Clients?
    Also soll auf dem Fern-PC ein Server warten bis ich mich connecte oder soll der Fern-PC einen Client haben der sich versucht zu meinem PC zu verbinden?!

    Lg Chris

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Metal Freak“ ()

    Hallo,

    normalerweise befindet sich der "Server" auf dem Computer, der von
    aussen gesteuerten werden soll.
    Der Client dann natührlich bei dir auf dem Computer, der dann zu
    dem Server connected.
    Der Server sollte dies natührlich zulassen ( Ports ect freischalten )
    Über dem Clienten werden dann auch die evtuell vorhandenen Aktionen
    durchgeführt.

    Mfg
    Lexeaus

    =)
    Aber würde es nicht gehen, dass auf den Fern-PC's die Clients sind?
    Dann hätte ich einen Server auf meinem PC auf welchen sich alle Clients connecten, dann müsste ich nur bei mir den Port auf meine LocalIP weiterleiten.

    Für mein Vorhaben wäre dies viel besser & einfacher, geht das i-wie?

    Lg Chris
    Also wenn du bei dir den Server hast,
    must du ja auf den Fern-PCs logischerweise den/die
    Clienten haben und dann musst du diese ja DA bedienen,
    dh du must vorort sein bzw Remotecomputerunterstützung haben.

    Ich würde es einfach auf dem normalen wege machen ! ;)

    mfg
    lexeaus
    Wenn eine Verbindung zwischen Server und Client via Sockets besteht kann der Server doch auch was an die Clients Bytes schicken, oder nicht?!
    Hab halt kB dass gewisse Ports auf den Fern-PC's geöffnet sein müssen.
    Lg Chris

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Metal Freak“ ()

    Wenn eine Verbindung zwischen Server und Client via Sockets besteht kann der Server doch auch was an die Clients Bytes schicken, oder nicht?!


    Dies ist eine sehr gute frage, lass mich mal nachdenken.
    Vielleicht ist es möglich , aber wieso versuchst du nicht einfach
    den clienten und den server in eine anwendung zu bringen, dh
    das beide rechner die selben anwendungen haben, die auf
    "knopfdruck" halt zu dem anderen connecten ( dann wird erst
    bestimmt, wer server und wer client "spielen" soll )
    dazu müste man aber auch wieder offene ports haben, ich glaube
    da kommst du auch nicht drumherum !!!

    mfg
    lexeaus
    Wenn eine Verbindung zwischen Server und Client via Sockets besteht kann der Server doch auch was an die Clients Bytes schicken, oder nicht?!
    Du sagst es, es muss erst eine Verbindung bestehen. Bei TCP kann nur der Client zum Host eine Verbindung aufbauen, nicht anders herum.
    Wenn die Verbindung mal steht, kannste machen, was du willst.

    Edit: man sollte nicht lauter sinnlose, stehende Verbindungen rumliegen haben, falls du das jetzt vorhast ^^
    Hab mir das halt so vorgestellt:

    Die Clients sollen solange versuchen sich zum Server (zu meiner IP) zu connecten (In einem Intervall von z.B. 10 Sekunden) bis eine Verbindungsannahme vom Server erfolgt.
    Dann lasse ich mir die Clients die sich zum Server verbunden haben alle in einer Liste anzeigen und kann Befehle, welche das Client-Programm versteht, an den Client senden, und ihn damit quasi steuern.

    Was ist nun unlogisch an meinem Vorhaben/was wird nicht funktinieren?

    Lg Chris
    hallo metal freak,

    ich hab mir die anderen posts jetzt nicht durchgelesen, aber

    so würde ich es auch machen - denn nur so macht es sinn. ;)
    dafür gibt es den tcpilistener für den server und einen entsprechenden gegenpart für den client.

    beispiele dafür gibt es im inet genug.

    gruss

    mikeb69
    Endlich einer der für meine Variante ist x]

    Jo ne simple Server-Client Verbindung schaff' ich im Schlaf - nur mehrere Clients, das ist das komplizierte.
    Also ich versuche es erstmal alleine, hab schon eine wage Vorstellung, aber wenn ich Hilfe brauche werde ich wiederkommen :D

    Lg Chris
    Das doofe dran ist, dass du lauter unnötige stehende Verbindungen hast

    Das ist mir, erstmal, scheiss egal.
    Unsere Leitung hält das schon aus :D
    Mein "Problem" ist halt noch Ein "Client-Array" quasi zu erstellen, da sich ja mehrere Clients auf meinen Server connecten sollen.
    Ich habe mir das eigetntlich so gedacht.

    Auf i-nem Event, z.B Button-Klick, starte ich meinen Server und lasse ihn asynchronisch auf Clients warten.
    Dann habe ich eine Callback-Event, welches automatisch gestarten wird wenn sich ein Client verbinden will.
    Nur weiter weiß ich nicht, da es ja, wie gesagt, mehrere Clients sind die sich verbinden sollen..ich brauche ja i-wie n' Array, oder wie?

    Ich versuch erstmal noch weiter - aber wenn mir jemand helfen kann -> Immer her mit Lösungsvorschlägen bzw eventuellen Source-/Pseudo- Codes.

    Lg Chris ;)
    Hey, hab grad n' dicken Fehler, wäre aber zu komplex das ganze zu beschreiben.
    Nur mal eine Frage, kann das so überhaupt gut gehen?

    VB.NET-Quellcode

    1. msgToSend = "hello"
    2. byteData = msgToSend.ToByte()
    3. clientSocket.BeginSend(byteData, 0, byteData.Length, SocketFlags.None, new AsyncCallback(AddressOf OnSend), null)
    4. byteData = New Byte(1023) {}
    5. clientSocket.BeginReceive(byteData, 0, byteData.Length, SocketFlags.None, new AsyncCallback(AddressOf OnReceive), null)

    Denn in Zeile 3 sendet mein Socket ja schon was an den Server, dann kann in Zeile 4 ja nicht, das was versendet werden soll auf "0" zurück gesezt werden und zum Empfang gebraucht werden, oder?

    Argh...ich hoffe ihr versteht mich ;(

    Lg Chris
    Hi, also mehrere Clienten zum Server verbinden lassen kannst du doch so machen...so hab ich das zumindest bei meinem Multi-Chat gemacht.

    VB.NET-Quellcode

    1. Private Sub Winsock_ConnectionRequest(Index As Integer, ByVal requestID As Long)
    2. If Index = 0 Then
    3. intMax = intMax + 1
    4. Load Winsock(intMax)
    5. Winsock(intMax).LocalPort = Port
    6. Winsock(intMax).Accept requestID
    7. End If
    8. End Sub