Ausführliches TCP und UDP Tutorial
- VB.NET
Sie verwenden einen veralteten Browser (%browser%) mit Sicherheitsschwachstellen und können nicht alle Funktionen dieser Webseite nutzen.
Hier erfahren Sie, wie einfach Sie Ihren Browser aktualisieren können.
Hier erfahren Sie, wie einfach Sie Ihren Browser aktualisieren können.
Es gibt 54 Antworten in diesem Thema. Der letzte Beitrag () ist von Gelöschter Benutzer.
-
-
-
tolle Fehlerbeschreibung...
stream = client.GetStream
streamr = New StreamReader(stream)
streamw = New StreamWriter(stream) ' Müsste eigentlich alles Klar sein.
While True
Select Case streamr.ReadLine
Case "onl" ' und so weiter eigentlich müsste es heißen select case mid(streamr.readline,1,3) Aber da des ja vielen zu Kompiziert ist lass ich das mal weg^^
streamw.WriteLine("ok") ' Achtung! ist nicht Vollständig!
das ist der Server, über streamr.... werden die Daten empfangen und über streamw... gesendet...wo ist das Problem?
Sub client_send(ByVal text As String)
streamw.WriteLine(text)
streamw.Flush()
End Sub
Function client_recieve() As String
client_recieve = streamr.ReadLine
End Function
der Client kann ebenfalls Senden und Empfangen...Ich wollte auch mal ne total überflüssige Signatur:
---Leer--- -
-
-
-
Hallo,
im TpcClient bekomm ich 3 Fehler:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click 'Button1 wird geclickt
Client.Connect(IP, Port) 'Client verbindet sich mit IP: 192.168.111.17 und Port 4000
If Client.Connected Then
stream = Client.GetStream ' Stream wird auf Client verwiesen
streamw = New StreamWriter(stream) ' Stream zum Senden wird deklariert
streamr = New StreamReader(stream) ' Stream zum Empfangen wird deklariert
login() ' Sub Login
Else
MsgBox("Verbidnung konnte nicht mit " & IP & " aufgebaut werden!")
End If
Eigenschaftenzugriff muss der Eigenschaft zugewiesen werden oder deren Wert verwenden.
2. Client.Connected:
"Connected" ist kein Member von "WindowsApplication1.TcpClient".
3. Client.GetStream:
"GetStream" ist kein Member von "WindowsApplication1.TcpClient".
kann mir jemand helfen
mfg gerry -
-
-
ja hab ich alles gemacht hie mein ganzer code:
VB.NET-Quellcode
- Imports System.IO
- Imports System.Net
- Imports System.Net.Sockets
- Public Class TcpClient
- Dim stream As NetworkStream
- Dim streamw As StreamWriter
- Dim streamr As StreamReader
- Dim client As New TcpClient
- Dim port As Integer = 5674
- Private Sub Connect_Click() Handles Connect.Click
- Try
- client.Connect(TextBox1.Text, port)
- If client.Connected Then
- stream = client.GetStream
- streamw = New StreamWriter(stream)
- streamr = New StreamReader(stream)
- Label2.Visible = True
- TextBox2.Visible = True
- send.Visible = True
- Else
- End If
- Catch ex As SocketException
- MsgBox("Verbidnung konnte nicht mit " & ip & " aufgebaut werden!")
- End Try
- End Sub
- Sub client_send(ByVal text As String)
- streamw.WriteLine(text)
- streamw.Flush()
- End Sub
- Function client_recieve() As String
- client_recieve = streamr.ReadLine
- End Function
- Private Sub send_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles send.Click
- client_send(TextBox2.Text)
- End Sub
- End Class
-
-
-
Ich habe das Problem, das der Client nichts Empfängt. Wenn ich darau warte, dann stürzt die Anwendung ab, weil er nichts empfängt. Doch der Server Empfängt und Verschickt etwas.
Das Senden beim Clients funktioniert auch. Eigentlich wollte ich das so machen, das beim Client Automatisch nach einer neuen Nachricht überprüft wird aber das habe ich auch nicht hinbekommen. -
also ich hab das jetzt auch mal ausprobiert und bei mir funktioniert es nicht so wirklich. Der Server scheint zu funktionierten. Zumindestens kommt da keine Fehlermeldung. Aber beim Clienten kommt immer wieder die Meldung dass er nicht mitm Server verbinden kann.
Ich habe zwei PCs direkt per Kabel verbunden also keine Firewall, kein Router rein gar nix dazwischen. Aber selbst wenn ich Server und Client aufm gleichen Rechner starte und dann mit der IP 127.0.0.1 Verbinden will, funktioniert es nicht.
Standartport ist bei mir 5000 und IP 192.168.0.55
hier mal meinen Code:
Client:
VB.NET-Quellcode
- Imports System.Net.Sockets
- Imports System.IO
- Public Class Form1
- 'Variablen:
- Dim stream As NetworkStream
- Dim streamw As StreamWriter
- Dim streamr As StreamReader
- Dim Client As New TcpClient
- Dim IP As String
- Dim Port As Integer
- '_________________
- Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdVerbinden.Click
- Client.Connect(IP, Port) 'Client verbindet sich 'Hier tritt dann die Fehlermeldung auf
- If Client.Connected Then
- stream = Client.GetStream ' Stream wird auf Client verwiesen
- streamw = New StreamWriter(stream) ' Stream zum Senden wird deklariert
- streamr = New StreamReader(stream) ' Stream zum Empfangen wird deklariert
- cmdVerbinden.Enabled = False
- cmdSenden.Enabled = True
- Else
- MsgBox("Verbidnung konnte nicht mit " & IP & " aufgebaut werden!")
- End If
- End Sub
- Sub client_send(ByVal text As String)
- streamw.WriteLine(text)
- streamw.Flush()
- End Sub
- Function client_recieve() As String
- client_recieve = streamr.ReadLine
- End Function
- Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
- IP = txtIP.Text
- Port = CInt(txtPort.Text)
- End Sub
- Private Sub cmdSpeichern_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdSpeichern.Click
- IP = txtIP.Text
- Port = CInt(txtPort.Text)
- End Sub
- 'Client Starten wenn Button geklickt wurde
- Private Sub cmdSenden_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdSenden.Click
- client_send(txtVersand.Text)
- txtEmpfang.Text = txtEmpfang.Text & vbCrLf & "Versenden: " & txtVersand.Text
- txtVersand.Text = ""
- txtEmpfang.Text = txtEmpfang.Text & vbCrLf & "Empfangen: " & client_recieve()
- End Sub
- Private Sub cmdBeenden_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdBeenden.Click
- Client.Close()
- Me.Close()
- End Sub
- End Class
Server:
VB.NET-Quellcode
- Imports System.Net
- Public Class Form1
- 'Variablen:
- Dim stream As NetworkStream
- Dim streamw As StreamWriter
- Dim streamr As StreamReader
- Dim Server As TcpListener
- Dim client As New TcpClient
- Dim Port As Integer
- Dim ipendpoint As IPEndPoint = New IPEndPoint(IPAddress.Any, Port)
- Dim mainthread As Threading.Thread
- '______________
- Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
- Port = CInt(txtPort.Text)
- End Sub
- Sub mainserver()
- Try
- Server = New TcpListener(ipendpoint)
- Server.Start()
- client = Server.AcceptTcpClient
- stream = client.GetStream
- streamr = New StreamReader(stream)
- streamw = New StreamWriter(stream) ' Müsste eigentlich alles Klar sein.
- Catch
- txtEmpfang.Text = txtEmpfang.Text & vbCrLf & "Fehler: " & "Server konnte nicht gestartet werden" & vbCrLf ' Hier wieder eine Fehler behandlung und ein neuen Versuch den Server zu starten...
- End Try
- 'Empfangen:
- txtEmpfang.Text = txtEmpfang.Text & vbCrLf & "Empfangen: " & streamr.ReadLine
- End Sub
- Private Sub Form1__close(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.FormClosing
- Server.Stop()
- Try
- mainthread.Abort()
- Catch
- End Try
- End Sub
- Private Sub cmdSpeichern_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdSpeichern.Click
- Port = CInt(txtPort.Text)
- End Sub
- 'Text Senden wenn Button geklickt wurde
- Private Sub cmdVersand_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdVersand.Click
- streamw.WriteLine(txtVersand.Text)
- txtEmpfang.Text = txtEmpfang.Text & vbCrLf & "Versenden: " & txtVersand.Text
- txtVersand.Text = ""
- End Sub
- Private Sub cmdBeenden_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdBeenden.Click
- Me.Close()
- End Sub
- 'Server Starten wenn Button geklickt wurde
- Private Sub cmdStarten_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdStarten.Click
- txtEmpfang.Text = txtEmpfang.Text & vbCrLf & "Fehler: " & "Serverasdads " & vbCrLf
- mainthread = New Threading.Thread(AddressOf mainserver)
- mainthread.Start()
- cmdStarten.Enabled = False
- cmdVersand.Enabled = True
- End Sub
- End Class
-
Hallo,
ich arbeite aktuell an einer Verbindung zwischen ASP.net-Seite und Programm. Die Seite dient dabei als Client, das Programm als Server (IP ist auf HP eintragbar) - Wenn man auf der Homepage einen Text eingibt und auf absenden klickt, kommt beim Programm der Text auch richtig an, allerdings nur einmal (egal ob die HP von einer Person oder mehreren aufgerufen wird, IP wechselt also nicht). Beim zweiten oder dritten Mal kommt der Text nicht mehr bis zum Programm, das muss dann neugestartet werden.
Das wäre wohl ein Fall für den Multiserver, allerdings ist das Tutorial davon offline und deshalb nichtmehr auffindbar.
Was gibt es denn für großartige Änderungen zwischen diesem und einem Multiserver?
Mit freundlichen Grüßen
Padarom -
Hallo Community,
ich bin auf dieses thema gestoßen und habe jetzt auch schon google bemüht nach einen Multiserver
wie diesem hier, aber leider habe ich dort auch nichts passendes gefunden.
Könnte mir bitte einer erklären wie ich das beispiel zu einen Multiserver umprogrammiere bzw.
mir einen Code zeigen dafür.
Ich möchte diesen Code dazu nutzen um einen Login Server für ein Programm zu nutzen.
Ich hoffe ich werde hier geholfen,
da ich schon auch auf 2 weitere Webseiten nachgefragt hatte,
aber da bekommt man als Neuling leider nur dumme antworten bzw. erst keine antwort. -
-
-
Hi, ich hab da mal ne Frage zu dem Client.
Ich hab mir einen TCP-Server in C gebastelt. Dieser läuft auch gut.
Als Client nutze ich dieses Beispiel. Ich kann auch verbinden und Nachrichten senden. Nur wenn ich mit den Client Disconnecte und wieder Connecten will, bekomme ich die Fehlermeldung:
Ist das .Close der Verbindung wirklich die richtige Methode diese zu beenden? Denn die Beschreibung lautet: "Verwirft diese System.Net.Socket.TcpClient-Instanz, ohne die zugrunde liegene Verbindung zu schließen."
Erst wenn ich die Anwendung neustarte, geht der Connect wieder...
Edit:
Habe auch grade noch bemerkt, das sobald ich die Daten auslesen will, sich das Programm aufhängt...
Es läuft erst wieder, wenn ich den Server stoppe. Aber Daten kommen keine an, obwohl ich welche mit printf() ausgebe.
Für Hilfe wäre ich sehr dankbar.wintoolz.de- wintoolz.KeyLocker - Programm zum sicheren Verwalten von Passwörten
- wintoolz.CodeGallery - Datenbank für Codebeispiele veschiedener Programmiersprachen
- wintoolz.Haushaltsbuch - Dient zum Auflisten der Aktivitäten ihrer Bankkonten
Benutze auch du EcosiaDieser Beitrag wurde bereits 1 mal editiert, zuletzt von „T1g0r“ ()
- wintoolz.KeyLocker - Programm zum sicheren Verwalten von Passwörten
-
-
Benutzer online 1
1 Besucher
-
Ähnliche Themen
-
10 Benutzer haben hier geschrieben
- Gast (34)
- jvbsl (7)
- Vangelis (3)
- Dickschieder (3)
- Trade (2)
- Quadsoft (2)
- v-go (1)
- T1g0r (1)
- EaranMaleasi (1)
- Dancger (1)