vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Zippen wie die Profis!  
 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: .NET und Netzwerk 
Autor: ModeratorDaveS (Moderator)
Datum: 06.01.05 21:11

Also, es gibt unzählige Beispiele, und wir werden kaum wissen welches du meinst. Netzwerken in .Net ist sehr umfangreich, und vielleicht sollte man besser etwas davon wissen bevor man anfängt alles zu beurteilen. Das mit Vb6 Winsock zu vergleichen ist kaum sinnvoll. Aber kluger Trick das ganze Betriebsystem einfrieren zu lassen, ich wüßte nicht wie man das machen könnte. Man hat in .Net auch Multithreading und asynchrone Funktionsaufrufe. Hier z.B. ist sehr einfacher Servercode um asynchron Daten zu empfangen So friert die Anwendung nicht ein. (cbr ist dein "DataArrival" Event).
 
Imports System.Net
Imports System.Net.Sockets
 
Public Class Form1
    Inherits System.Windows.Forms.Form
 
#Region " Windows Form Designer generated code "
 
    Public Sub New()
        MyBase.New()
 
        'This call is required by the Windows Form Designer.
        InitializeComponent()
 
        'Add any initialization after the InitializeComponent() call
 
    End Sub
 
    'Form overrides dispose to clean up the component list.
    Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)
        If disposing Then
            If Not (components Is Nothing) Then
                components.Dispose()
            End If
        End If
        MyBase.Dispose(disposing)
    End Sub
 
    'Required by the Windows Form Designer
    Private components As System.ComponentModel.IContainer
 
    'NOTE: The following procedure is required by the Windows Form Designer
    'It can be modified using the Windows Form Designer.  
    'Do not modify it using the code editor.
    Friend WithEvents RichTextBox1 As System.Windows.Forms.RichTextBox
    Friend WithEvents ReceiveButton As System.Windows.Forms.Button
    Friend WithEvents DataLabel As System.Windows.Forms.Label
    Friend WithEvents ClearButton As System.Windows.Forms.Button
    <System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()
        Me.RichTextBox1 = New System.Windows.Forms.RichTextBox
        Me.ReceiveButton = New System.Windows.Forms.Button
        Me.DataLabel = New System.Windows.Forms.Label
        Me.ClearButton = New System.Windows.Forms.Button
        Me.SuspendLayout()
        '
        'RichTextBox1
        '
        Me.RichTextBox1.Location = New System.Drawing.Point(0, 8)
        Me.RichTextBox1.Name = "RichTextBox1"
        Me.RichTextBox1.Size = New System.Drawing.Size(280, 168)
        Me.RichTextBox1.TabIndex = 0
        Me.RichTextBox1.Text = ""
        '
        'ReceiveButton
        '
        Me.ReceiveButton.Location = New System.Drawing.Point(8, 184)
        Me.ReceiveButton.Name = "ReceiveButton"
        Me.ReceiveButton.Size = New System.Drawing.Size(56, 32)
        Me.ReceiveButton.TabIndex = 1
        Me.ReceiveButton.Text = "Receive"
        '
        'DataLabel
        '
        Me.DataLabel.Location = New System.Drawing.Point(104, 192)
        Me.DataLabel.Name = "DataLabel"
        Me.DataLabel.Size = New System.Drawing.Size(136, 32)
        Me.DataLabel.TabIndex = 2
        Me.DataLabel.Text = "Data: 0"
        '
        'ClearButton
        '
        Me.ClearButton.Location = New System.Drawing.Point(8, 224)
        Me.ClearButton.Name = "ClearButton"
        Me.ClearButton.Size = New System.Drawing.Size(56, 32)
        Me.ClearButton.TabIndex = 3
        Me.ClearButton.Text = "Clear"
        '
        'Form1
        '
        Me.AutoScaleBaseSize = New System.Drawing.Size(5, 13)
        Me.ClientSize = New System.Drawing.Size(292, 273)
        Me.Controls.Add(Me.ClearButton)
        Me.Controls.Add(Me.DataLabel)
        Me.Controls.Add(Me.ReceiveButton)
        Me.Controls.Add(Me.RichTextBox1)
        Me.Name = "Form1"
        Me.Text = "Form1"
        Me.ResumeLayout(False)
 
    End Sub
 
#End Region
 
 
    Dim conn As TcpClient
    Dim nstrm As System.IO.Stream
    Dim sr As System.IO.StreamReader
    Dim netBuff(1000 - 1) As Byte
    Dim enc As New System.Text.UTF8Encoding
    Dim dec As System.Text.Decoder
    Dim listener As New TcpListener(Net.IPAddress.Any, 1738)
 
    Public Sub getData()
        If IsNothing(conn) Then
            listener.Start()
            conn = listener.AcceptTcpClient
            nstrm = conn.GetStream()
            dec = enc.GetDecoder
            nstrm.BeginRead(netBuff, 0, 1000, AddressOf cbr, Nothing)
        Else
            MsgBox("Server running")
        End If
    End Sub
 
    Private Delegate Sub setTextHandler(ByVal data As String)
 
    Public Sub cbr(ByVal ar As IAsyncResult)
        Dim cnt As Integer
        Dim data As String
        Dim chars() As Char
        Dim continue As Boolean = True
 
        Try
            cnt = conn.GetStream.EndRead(ar)
           If cnt = 0 Then
                continue = False
            Else
                ReDim chars(dec.GetCharCount(netBuff, 0, cnt) - 1)
                dec.GetChars(netBuff, 0, cnt, chars, 0)
                data = New String(chars, 0, chars.Length)
 
                RichTextBox1.Invoke(CType(AddressOf setText, setTextHandler), _
                  New String() {data})
               nstrm.BeginRead(netBuff, 0, 1000, AddressOf cbr, Nothing)
            End If
        Catch ex As System.Exception
            Debug.WriteLine("Error: " + ex.Message)
            continue = False
        End Try
        If Not continue Then
            nstrm.Close()
            conn.Close()
            listener.Stop()
            nstrm = Nothing
            conn = Nothing
        End If
    End Sub
 
    Private Sub setText(ByVal data As String)
        RichTextBox1.AppendText(data)
        Application.DoEvents()
        DataLabel.Text = "Data: " + RichTextBox1.Text.Length.ToString()
    End Sub
 
    Private Sub ReceiveButton_Click(ByVal sender As System.Object, ByVal e As _
      System.EventArgs) Handles ReceiveButton.Click
        getData()
    End Sub
 
    Private Sub ClearButton_Click(ByVal sender As System.Object, ByVal e As _
      System.EventArgs) Handles ClearButton.Click
        RichTextBox1.Text = ""
    End Sub
End Class

________
Alle Angaben ohne Gewähr. Keine Haftung für Vorschläge, Tipps oder sonstige Hilfe, falls es schiefgeht, nur Zeit verschwendet oder man sonst nicht zufrieden ist

alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
.NET und Netzwerk1.307UserXP.dll06.01.05 20:48
Re: .NET und Netzwerk1.211ModeratorDaveS06.01.05 21:11
Re: .NET und Netzwerk762Easyrider07.01.05 08:50
Re: .NET und Netzwerk759UserXP.dll09.01.05 13:12
Re: .NET und Netzwerk774ModeratorDaveS09.01.05 14:08
Re: .NET und Netzwerk765UserXP.dll09.01.05 16:23
Re: .NET und Netzwerk728ModeratorDaveS09.01.05 16:36

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