Shooter2k
Erfahrenes Mitglied
Hallo Forum,
ich habe eine Frage zu meinem Tcp-listener. Als Konsolenprogramm wie in dem Beispiel hier: http://msdn.microsoft.com/de-de/library/system.net.sockets.tcplistener.aspx, läuft es einwandfrei. while, try etc.. Bloß wie baue ich das in ein Windows-Form ein?
Könnte man das vieleicht in einen "Timer" einbauen? Mit Winsock gab es ein "DataArrival" .Bisher habe ich das alles in ein "form_load" gepackt, was allerdings nicht ganz rund läuft, da das Serverform erst erscheint, wenn ich einen Text geschickt habe. Und ich kann immer nur einmal einen Text über den Client schicken, danach muss ich das Form neustarten. Wenn das auch über den Timer geht, kann ich die Variable Server irgendwie "Global" machen, um im listening_timer_Tick damit zu arbeiten? "Ist verbunden, ist nicht verbunden etc.."
Hier ist mein bisheriger VB/.net code:
Danke für die Hilfe
ich habe eine Frage zu meinem Tcp-listener. Als Konsolenprogramm wie in dem Beispiel hier: http://msdn.microsoft.com/de-de/library/system.net.sockets.tcplistener.aspx, läuft es einwandfrei. while, try etc.. Bloß wie baue ich das in ein Windows-Form ein?
Könnte man das vieleicht in einen "Timer" einbauen? Mit Winsock gab es ein "DataArrival" .Bisher habe ich das alles in ein "form_load" gepackt, was allerdings nicht ganz rund läuft, da das Serverform erst erscheint, wenn ich einen Text geschickt habe. Und ich kann immer nur einmal einen Text über den Client schicken, danach muss ich das Form neustarten. Wenn das auch über den Timer geht, kann ich die Variable Server irgendwie "Global" machen, um im listening_timer_Tick damit zu arbeiten? "Ist verbunden, ist nicht verbunden etc.."
Hier ist mein bisheriger VB/.net code:
Code:
Imports System
Imports System.IO
Imports System.Net
Imports System.Net.Sockets
Imports System.Text
Imports Microsoft.VisualBasic
Imports System.Net.NetworkInformation
Public Class server_frm
Private Sub server_frm_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'###############################
Dim Addresslist() As IPAddress = _
Dns.GetHostByName(Dns.GetHostName()).AddressList
' Dim IPs As IPAddress
' alle IP-Adressen auflisten
'ip = Addresslist(0).ToString
Dim ipaddy As String
ipaddy = Addresslist(0).ToString
tf_ip.Text = ipaddy
Dim server As TcpListener
server = Nothing
' Set the TcpListener on port 13000.
Dim port As Int32 = 13000
Dim localAddr As IPAddress = IPAddress.Parse("127.0.0.1")
server = New TcpListener(localAddr, port)
' Start listening for client requests.
server.Start()
Try
' Buffer for reading data
Dim bytes(1024) As Byte
Dim data As String = Nothing
tf_status.Text = "Warten auf Verbindung"
Dim client As TcpClient = server.AcceptTcpClient()
tf_status.Text = "Verbunden"
data = Nothing
' Get a stream object for reading and writing
Dim stream As NetworkStream = client.GetStream()
Dim i As Int32
' Loop to receive all the data sent by the client.
i = stream.Read(bytes, 0, bytes.Length)
data = System.Text.Encoding.ASCII.GetString(bytes, 0, i)
tf_status2.Text = data
Catch ex As Exception
End Try
End Sub
Private Sub listening_timer_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles listening_timer.Tick
'loop here?
End Sub
End Class
Danke für die Hilfe