vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Blitzschnelles Erstellen von grafischen Diagrammen!  
 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: Programm soll Netzwerkverb. aufbauen - Zwei Clients sollen Daten austauschen 
Autor: RollingStones
Datum: 07.08.07 21:30

OK, habe mich mal durch die Dokumentation von MS geschlagen und bin dabei auf folgenden Code gestoßen (für einen TCP Server und einen TCP Client), den ich versucht habe, einzubauen:

TCP-Listener
Imports System
Imports System.IO
Imports System.Net
Imports System.Net.Sockets
Imports System.Text
Imports Microsoft.VisualBasic
 
 
Class MyTcpListener
 
    Public Shared Sub Main()
 
	Dim server As TcpListener
	server=nothing
        Try
            ' 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()
 
         ' Buffer for reading data
            Dim bytes(1024) As Byte
            Dim data As String = Nothing
 
         ' Enter the listening loop.
         While True
            Console.Write("Waiting for a connection... ")
 
            ' Perform a blocking call to accept requests.
            ' You could also user server.AcceptSocket() here.
            Dim client As TcpClient = server.AcceptTcpClient()
            Console.WriteLine("Connected!")
 
            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)
            While (i <> 0) 
               ' Translate data bytes to a ASCII string.
               data = System.Text.Encoding.ASCII.GetString(bytes, 0, i)
                    Console.WriteLine("Received: {0}", data)
 
               ' Process the data sent by the client.
               data = data.ToUpper()
                    Dim msg As Byte() = System.Text.Encoding.ASCII.GetBytes( _
                      data)
 
               ' Send back a response.
               stream.Write(msg, 0, msg.Length)
                    Console.WriteLine("Sent: {0}", data)
 
               i = stream.Read(bytes, 0, bytes.Length)
 
            End While
 
            ' Shutdown and end connection
            client.Close()
         End While
      Catch e As SocketException
         Console.WriteLine("SocketException: {0}", e)
      Finally
         server.Stop()
      End Try
 
      Console.WriteLine(ControlChars.Cr + "Hit enter to continue....")
      Console.Read()
   End Sub 'Main
 
End Class 'MyTcpListener
TCP-Client
Shared Sub Connect(server As [String], message As [String])
   Try
      ' Create a TcpClient.
      ' Note, for this client to work you need to have a TcpServer 
      ' connected to the same address as specified by the server, port
      ' combination.
      Dim port As Int32 = 13000
      Dim client As New TcpClient(server, port)
 
      ' Translate the passed message into ASCII and store it as a Byte array.
      Dim data As [Byte]() = System.Text.Encoding.ASCII.GetBytes(message)
 
      ' Get a client stream for reading and writing.
      '  Stream stream = client.GetStream();
      Dim stream As NetworkStream = client.GetStream()
 
      ' Send the message to the connected TcpServer. 
      stream.Write(data, 0, data.Length)
 
      Console.WriteLine("Sent: {0}", message)
 
      ' Receive the TcpServer.response.
      ' Buffer to store the response bytes.
      data = New [Byte](256) {}
 
      ' String to store the response ASCII representation.
      Dim responseData As [String] = [String].Empty
 
      ' Read the first batch of the TcpServer response bytes.
      Dim bytes As Int32 = stream.Read(data, 0, data.Length)
      responseData = System.Text.Encoding.ASCII.GetString(data, 0, bytes)
      Console.WriteLine("Received: {0}", responseData)
 
      ' Close everything.
      stream.Close()
      client.Close()
   Catch e As ArgumentNullException
      Console.WriteLine("ArgumentNullException: {0}", e)
   Catch e As SocketException
      Console.WriteLine("SocketException: {0}", e)
   End Try
 
   Console.WriteLine(ControlChars.Cr + " Press Enter to continue...")
   Console.Read()
End Sub 'Connect
Folgende Fragen wirft das jetzt bei mir auf:

1. Welche Voraussetzugen müssen jetzt noch erfüllt werden damit das funktioniert? (von mir aus auch zur Probe auf dem eigenen PC, also 127.0.0.1)
2. In welcher Reihenfolge müssen die Subs der beiden Klassen (also TCP Listener und TCP Client) aufgerufen werden?
3. Welche Parameter müssen der Sub des TCP-Clients mitgegeben werden? (Der message-Parameter ist denke ich egal...da halt irgendeinen String. Der server-Parameter macht mir jedoch Probleme!)

Gru?

RollingStones

alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Programm soll Netzwerkverb. aufbauen - Zwei Clients sollen D...1.112RollingStones06.08.07 22:39
Re: Programm soll Netzwerkverb. aufbauen - Zwei Clients soll...795rub07.08.07 17:29
Re: Programm soll Netzwerkverb. aufbauen - Zwei Clients soll...702RollingStones07.08.07 18:26
Re: Programm soll Netzwerkverb. aufbauen - Zwei Clients soll...731Maxro07.08.07 18:56
Re: Programm soll Netzwerkverb. aufbauen - Zwei Clients soll...709RollingStones07.08.07 19:54
Re: Programm soll Netzwerkverb. aufbauen - Zwei Clients soll...695RollingStones07.08.07 21:30
Re: Programm soll Netzwerkverb. aufbauen - Zwei Clients soll...670prot08.08.07 06:15
Re: Programm soll Netzwerkverb. aufbauen - Zwei Clients soll...712Maxro08.08.07 13:50
Re: Programm soll Netzwerkverb. aufbauen - Zwei Clients soll...688RollingStones08.08.07 19:50

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