vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
vb@rchiv Offline-Reader - exklusiv auf der vb@rchiv CD Vol.4  
 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: TCP/IP 
Autor: ModeratorDaveS (Moderator)
Datum: 13.12.05 13:06

Ok, hier ist kompletter Code für ein anderes Beispiel, schickt nur Daten zum Server. Ist auch unter Vb2005 getestet worden.

Client

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 SendButton As System.Windows.Forms.Button
    Friend WithEvents CloseButton As System.Windows.Forms.Button
    <System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()
        Me.RichTextBox1 = New System.Windows.Forms.RichTextBox
        Me.SendButton = New System.Windows.Forms.Button
        Me.CloseButton = New System.Windows.Forms.Button
        Me.SuspendLayout()
        '
        'RichTextBox1
        '
        Me.RichTextBox1.Location = New System.Drawing.Point(8, 16)
        Me.RichTextBox1.Name = "RichTextBox1"
        Me.RichTextBox1.Size = New System.Drawing.Size(272, 160)
        Me.RichTextBox1.TabIndex = 0
        Me.RichTextBox1.Text = "RichTextBox1"
        '
        'SendButton
        '
        Me.SendButton.Location = New System.Drawing.Point(16, 200)
        Me.SendButton.Name = "SendButton"
        Me.SendButton.Size = New System.Drawing.Size(48, 32)
        Me.SendButton.TabIndex = 1
        Me.SendButton.Text = "Send"
        '
        'CloseButton
        '
        Me.CloseButton.Location = New System.Drawing.Point(80, 200)
        Me.CloseButton.Name = "CloseButton"
        Me.CloseButton.Size = New System.Drawing.Size(48, 32)
        Me.CloseButton.TabIndex = 2
        Me.CloseButton.Text = "Close"
        '
        'Form1
        '
        Me.AutoScaleBaseSize = New System.Drawing.Size(5, 13)
        Me.ClientSize = New System.Drawing.Size(292, 273)
        Me.Controls.Add(Me.CloseButton)
        Me.Controls.Add(Me.SendButton)
        Me.Controls.Add(Me.RichTextBox1)
        Me.Name = "Form1"
        Me.Text = "Client"
        Me.ResumeLayout(False)
 
    End Sub
 
#End Region
 
    Dim client As tcpclient
    Dim sw As System.IO.StreamWriter
 
    Public Sub Send(ByVal data As String)
        If IsNothing(sw) Then
            client = New TcpClient("localhost", 1738)
            sw = New System.IO.StreamWriter(client.GetStream(), _
              System.Text.Encoding.UTF8)
        End If
        Try
            sw.Write(data)
            sw.Flush()
        Catch ex As System.Exception
            Debug.WriteLine("Error: " + ex.Message)
            closeConn()
        End Try
    End Sub
 
    Private Sub SendButton_Click(ByVal sender As System.Object, ByVal e As _
      System.EventArgs) Handles SendButton.Click
        Send(RichTextBox1.Text)
    End Sub
 
    Private Sub CloseButton_Click(ByVal sender As System.Object, ByVal e As _
      System.EventArgs) Handles CloseButton.Click
        closeConn()
    End Sub
 
    Private Sub closeConn()
        If Not IsNothing(sw) Then
            sw.Close()
            client.Close()
        End If
        sw = Nothing
        client = Nothing
    End Sub
 
End Class
Server

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 = "Server"
        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 carryOn As Boolean = True
 
        Try
            cnt = conn.GetStream.EndRead(ar)
            Debug.WriteLine("Server Bytes read: " + cnt.ToString())
            If cnt = 0 Then
                carryOn = False
            Else
                ReDim chars(dec.GetCharCount(netBuff, 0, cnt) - 1)
                dec.GetChars(netBuff, 0, cnt, chars, 0)
                data = New String(chars, 0, chars.Length)
                Debug.WriteLine("Data received: " + data.Length.ToString() + "" & _
                  "chars: " + data)
 
                RichTextBox1.Invoke(CType(AddressOf setText, setTextHandler), _
                  New String() {data})
                Debug.WriteLine("Restart read request")
                nstrm.BeginRead(netBuff, 0, 1000, AddressOf cbr, Nothing)
            End If
        Catch ex As System.Exception
            Debug.WriteLine("Error: " + ex.Message)
            carryOn = False
        End Try
        If Not carryOn 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
TCP/IP1.388unbekannt12.12.05 19:33
Re: TCP/IP2.800Urot12.12.05 19:37
Re: TCP/IP2.748ModeratorDaveS12.12.05 19:39
Re: TCP/IP2.827Urot12.12.05 19:45
Re: TCP/IP1.082unbekannt12.12.05 19:41
Re: TCP/IP2.740ModeratorDaveS12.12.05 19:47
Re: TCP/IP1.026unbekannt12.12.05 19:50
Re: TCP/IP3.103ModeratorDaveS12.12.05 19:51
Re: TCP/IP997unbekannt12.12.05 19:52
Re: TCP/IP2.715ModeratorDaveS12.12.05 19:55
Re: TCP/IP1.018unbekannt12.12.05 19:55
Re: TCP/IP2.735ModeratorDaveS12.12.05 20:07
Re: TCP/IP1.054unbekannt12.12.05 20:11
Re: TCP/IP2.745ModeratorDaveS12.12.05 21:06
Re: TCP/IP2.759ModeratorDaveS12.12.05 19:39
Re: TCP/IP984unbekannt13.12.05 12:07
Re: TCP/IP2.658ModeratorDaveS13.12.05 12:12
Re: TCP/IP982unbekannt13.12.05 12:14
Re: TCP/IP2.706ModeratorDaveS13.12.05 12:24
Re: TCP/IP996unbekannt13.12.05 12:35
Re: TCP/IP2.721ModeratorDaveS13.12.05 12:46
Re: TCP/IP1.028unbekannt13.12.05 12:49
Re: TCP/IP4.698ModeratorDaveS13.12.05 13:06
Re: TCP/IP1.060unbekannt13.12.05 13:10
Re: TCP/IP996unbekannt13.12.05 13:12
Re: TCP/IP2.817ModeratorDaveS13.12.05 13:25
Re: TCP/IP993unbekannt13.12.05 13:26
Re: TCP/IP2.651coni19.12.05 08:16
Re: TCP/IP2.694OldMan19.12.05 16:10
Re: TCP/IP2.687coni19.12.05 17:19

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