F
fox(fux)
Hallo Leute,
ich habe 2 Programme geschrieben:
Einmal einen Client und dann noch einen Server.
Diese 2 kommunizieren via TCP.
Wenn man den Server startet, lauscht dieser auf Port 60000(TCP) auf einen Clienten. Wenn jetzt ein Kollege von mir den Clienten startet, dann verbindet sich dieser mit dem Server bei mir und sendet 2, 3 Zeilen Text die ich benötige.
Aber wie kann ich es machen, dass wenn sich 2 Clienten gleichzeitig zu meinem Server verbinden, der Server zuerst den ersten Client verarbeitet und dann auf den zweiten geht...
Gibt es hierzu eine Lösung?
Hier der Code:
Wie kann ich das Problem mit den 2 Clienten gleichzeitig lösen?
Aber bitte lasst mich nicht den kompletten Code neuschreiben.
Achja: Das ist meine erste TCP Anwendung, die ich soweit ohne Forenhilfe aufgestellt habe. (Hilfe war ein PDF von Galileo Computing)
Habe im Code alles "Nicht Wichtige" der Übersicht zuliebe herausgelöscht...
Danke für euer Bemühen!
mfg fox(fux)
ich habe 2 Programme geschrieben:
Einmal einen Client und dann noch einen Server.
Diese 2 kommunizieren via TCP.
Wenn man den Server startet, lauscht dieser auf Port 60000(TCP) auf einen Clienten. Wenn jetzt ein Kollege von mir den Clienten startet, dann verbindet sich dieser mit dem Server bei mir und sendet 2, 3 Zeilen Text die ich benötige.
Aber wie kann ich es machen, dass wenn sich 2 Clienten gleichzeitig zu meinem Server verbinden, der Server zuerst den ersten Client verarbeitet und dann auf den zweiten geht...
Gibt es hierzu eine Lösung?
Hier der Code:
Code:
Dim bytes(1024) As Byte
Dim countBytesFromClient As Int32
Dim server As New Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.IP)
Dim ipHostInfo As IPHostEntry = Dns.Resolve(Dns.GetHostName())
Dim ipAdress As IPAddress = ipHostInfo.AddressList(0)
Dim localEP As New IPEndPoint(ipAdress, 60000)
server.Bind(localEP)
Try
restart:
Console.Clear()
server.Listen(1)
Console.WriteLine("Waiting for data at port 60000(TCP)...")
clientSocket = server.Accept()
Console.Clear()
Console.WriteLine("Waiting for data at port 60000(TCP)...")
Console.WriteLine("Connection established!")
countBytesFromClient = clientSocket.Receive(bytes)
inv_Name = (Encoding.ASCII.GetString(bytes, 0, countBytesFromClient))[COLOR='SeaGreen'] 'erste Data welche ich benötige[/COLOR]
Dim answer1() As Byte = Encoding.ASCII.GetBytes("Name_erhalten")
clientSocket.Send(answer1)
countBytesFromClient = clientSocket.Receive(bytes)
Nachricht = (Encoding.ASCII.GetString(bytes, 0, countBytesFromClient))
Dim answer2() As Byte = Encoding.ASCII.GetBytes("Nachricht_erhalten") [COLOR='SeaGreen']'zweite Data welche ich benötöige.[/COLOR]
clientSocket.Send(answer2)
Console.Write("Message from: ")
Console.ForegroundColor = ConsoleColor.White
Console.WriteLine(inv_Name)
Console.ForegroundColor = ConsoleColor.Gray
Console.Write("Message: ")
Console.ForegroundColor = ConsoleColor.White
Console.WriteLine(Nachricht)
Console.ForegroundColor = ConsoleColor.Gray
clientSocket.Close()
GoTo restart [COLOR='SeaGreen'] 'wenn ich dann wieder oben auf restart bin, kann problemlos ein weiterer Client verbinden![/COLOR]
Catch ex As Exception
'Fehlerbehandlung
End Try
Wie kann ich das Problem mit den 2 Clienten gleichzeitig lösen?
Aber bitte lasst mich nicht den kompletten Code neuschreiben.

Achja: Das ist meine erste TCP Anwendung, die ich soweit ohne Forenhilfe aufgestellt habe. (Hilfe war ein PDF von Galileo Computing)
Habe im Code alles "Nicht Wichtige" der Übersicht zuliebe herausgelöscht...
Danke für euer Bemühen!
mfg fox(fux)