vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Mails senden, abrufen und decodieren - ganz easy ;-)  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Fortgeschrittene
Re: UDP Server und Client 
Autor: adilette
Datum: 22.01.06 18:38

Hallo zusammen,

habe gerade eine mögliche Lösung gefunden. Ich habe die sen-Funktion in eine while(1) Schleife gesetzt und das wiederum in einen Thread:

Sub Main()
 
      'Erstellen des TCP-Threads für den Empfang des ZCodes und der UserID von 
      ' der Zentrale
      Dim tcp As New ThreadStart(AddressOf tcpZentrale)
      Dim tcpThread As New Thread(tcp)
 
      'Erstellen des UCP-Threads für das Senden des ZCodes an den Client
      Dim udp As New ThreadStart(AddressOf udpSenden)
      Dim udpThread As New Thread(udp)
 
      Dim anfrage(10), bestaetigung(10) As Byte
      ReDim arrAnzahlUser(anzUser - 1)
      Dim ID1, ID2 As UserDaten
 
      'User 1
      ID1.code = "1100"
      ID1.UserID = "01"
      'User 2
      ID2.code = "2200"
      ID2.UserID = "02"
      arrAnzahlUser(0) = ID1
      arrAnzahlUser(1) = ID2
 
      'TCP-Thread starten:
      'tcpThread.Priority = ThreadPriority.AboveNormal
      tcpThread.Start()
 
      'Thread starten und gleich in die Warteschlange versetzen
      udpThread.Start()
      udpThread.Suspend()
 
      Dim IpHostInfo As IPHostEntry = Dns.Resolve(Dns.GetHostName())
      Dim serverEndPoint As New IPEndPoint(IpHostInfo.AddressList(0), 3333)
 
      'Serverdaten:
      Console.WriteLine("Port des Servers: {0}", serverEndPoint.Port.ToString())
      Console.WriteLine("IP des Servers: {0}" & CrLf, _
        serverEndPoint.Address.ToString())
 
      While (1)
         Dim server As New Socket(AddressFamily.InterNetwork, _
                     SocketType.Dgram, ProtocolType.Udp)
         'Das Binden des ServerSockets ist für die ReceiveFrom-Funktion 
         ' vorausgesetzt.
         server.Bind(serverEndPoint)
 
         Try
            'Empfangen des Codes
            server.ReceiveFrom(anfrage, clientEndPoint)
            Console.WriteLine("Habe Anfrage des Client erhalten: {0}" & CrLf, _
              Encoding.ASCII.GetString(anfrage))
            Dim user As String = Encoding.ASCII.GetString(anfrage).TrimEnd( _
            NullChar)
            Zcode = vergleich(user, arrAnzahlUser)
            strCode = Encoding.ASCII.GetBytes(Zcode)
 
            'Clientdaten:
            Console.WriteLine("Port des Client: {0}", _
              clientEndPoint.Port.ToString())
            Console.WriteLine("IP des Client: {0}" & CrLf, _
            clientEndPoint.Address.ToString())
 
            'Senden des Codes
            server.SendTo(strCode, clientEndPoint)
            Console.WriteLine("Code an Client gesendet: {0}" & CrLf, zcode)
 
            udpThread.Resume()
 
            'Bestätigung abwarten
            Console.WriteLine("Warte auf Bestätigung des Client...")
            Do
               server.ReceiveFrom(bestaetigung, clientEndPoint)
            Loop While Not (Encoding.ASCII.GetString(bestaetigung).TrimEnd( _
              NullChar) Like "OK")
            Console.WriteLine("Habe Bestätigung erhalten: {0}" & CrLf, _
            Encoding.ASCII.GetString(bestaetigung).TrimEnd(NullChar))
            udpThread.Suspend()
 
         Catch e As Exception
            Console.WriteLine(e.ToString())
         Finally
            server.Close()
         End Try
      End While
      Console.ReadLine()
   End Sub
 
   'UDP-Thread: nur die send-Funktion für das erneute Senden des ZCodes ist 
   ' in diesem Thread enthalten.
   Public Sub udpSenden()
      While (1)
         'Clientdaten:
         Thread.Sleep(2000)
         'Senden des Codes
         server.SendTo(strCode, clientEndPoint)
         Console.WriteLine("Code an Client gesendet: {0}" & CrLf, zcode)
      End While
      Console.ReadLine()
   End Sub
Aber danke für die Antwort, ich werde mal die anderen Beiträge durchsuchen. Es gibt bestimmt noch bessere Lösungen.
Ein weiteres Problem bei meiner ist, falls die Bestätigung nie eintrifft, wird der Code alle 2 Sekunden gesendet, für immer... tja...
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
UDP Server und Client1.870adilette21.01.06 15:36
Re: USP Server und Client1.310adilette21.01.06 15:43
Re: USP Server und Client1.270ModeratorDaveS21.01.06 15:45
Re: USP Server und Client1.281adilette21.01.06 15:47
Re: UDP Server und Client1.527adilette21.01.06 16:49
Re: UDP Server und Client1.297adilette21.01.06 16:50
Re: UDP Server und Client1.295Drapondur22.01.06 16:41
Re: UDP Server und Client1.460adilette22.01.06 18:38

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel