Damit Ihr Euch ein besseres Bidl machen könnt...
Hier ist der Code des Servers:
Imports System
Imports System.io
Imports System.Net
Imports System.Net.Sockets
Imports System.Text
Imports System.Threading
Imports System.Math
Imports Microsoft.VisualBasic.ControlChars
Public Structure UserDaten
Dim code As String
Dim UserID As String
End Structure
Module Serverapplikation
Public anzUser As Int32 = 2
Public arrAnzahlUser() As UserDaten
Public bestaetigung(10) As Byte
Sub Main()
Dim anfrage(10), bestaetigung(10) As Byte
ReDim arrAnzahlUser(anzUser - 1)
Dim ID1, ID2 As UserDaten
'User 1
ID1.code = "1111"
ID1.UserID = "01"
'User 2
ID2.code = "2222"
ID2.UserID = "02"
arrAnzahlUser(0) = ID1
arrAnzahlUser(1) = ID2
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)
'Kreiert einen IpEndPoint, um die IP und den Port des Clients zu
' speichern.
Dim clientEndPoint As New IPEndPoint(IPAddress.Any, 0)
Try
'Empfangen des Codes
Console.WriteLine("Warte auf Code-Anfrage des Client...")
server.ReceiveFrom(anfrage, clientEndPoint)
Console.WriteLine("Habe Anfrage des Client erhalten: {0}" & CrLf, _
Encoding.ASCII.GetString(anfrage))
Dim zcode As String = Encoding.ASCII.GetString(anfrage).TrimEnd( _
NullChar)
Dim bla As String = vergleich(zcode, arrAnzahlUser)
Dim strCode() As Byte = Encoding.ASCII.GetBytes(bla)
'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, bla)
'Bestätigung abwarten
Console.WriteLine("Warte auf Bestätigung des Client...")
server.ReceiveFrom(bestaetigung, clientEndPoint)
Console.WriteLine("Habe Bestätigung erhalten: {0}" & CrLf, _
Encoding.ASCII.GetString(bestaetigung).TrimEnd(NullChar))
Catch e As Exception
Console.WriteLine(e.ToString())
Finally
server.Close()
End Try
End While
Console.ReadLine()
End Sub
End Module
Module codeVergleich
Public Function vergleich(ByVal zcode, ByVal arrAnzahlUser) As String
Dim i As Integer
For i = 0 To UBound(arrAnzahlUser)
If zcode Like arrAnzahlUser(i).userID Then
Return arrAnzahlUser(i).code
End If
Next
Return -1
End Function
End Module |