Мой Kbyte.Ru
Рассылка Kbyte.Ru
Группы на Kbyte.Ru
Партнеры Kbyte.Ru
Реклама
Сделано руками
Сделано руками
> Исходные коды - Питер Бромберг -

Visual Basic .NET - Сетевое взаимодействие

Все примеры / Сеть и Интернет / Сетевое взаимодействие

Клиент-сервер TCP

Автор: Питер Бромберг | добавлено: 02.03.2011, 16:50 | просмотров: 11061 (2+) | комментариев: 0 | рейтинг: *x6
Простой пример сетевого взаимодействия приложений с использованием сокетов (Sockets) на Visual Basic .NET. В примере два приложения: клиент и сервер. Сервер прослушивает 8000 порт.

Код

'Клиент

Imports System.Net.Sockets
Imports System.Text
Class TCPCli
  Shared Sub Main()

    Dim tcpClient As New System.Net.Sockets.TcpClient()
    tcpClient.Connect("127.0.0.1", 8000)
    Dim networkStream As NetworkStream = tcpClient.GetStream()
    If networkStream.CanWrite And networkStream.CanRead Then
      ' Do a simple write.
      Dim sendBytes As [Byte]() = Encoding.ASCII.GetBytes("Is anybody there")
      networkStream.Write(sendBytes, 0, sendBytes.Length)
      ' Read the NetworkStream into a byte buffer.
      Dim bytes(tcpClient.ReceiveBufferSize) As Byte
      networkStream.Read(bytes, 0, CInt(tcpClient.ReceiveBufferSize))
      ' Output the data received from the host to the console.
      Dim returndata As String = Encoding.ASCII.GetString(bytes)
      Console.WriteLine(("Host returned: " + returndata))
    Else
      If Not networkStream.CanRead Then
        Console.WriteLine("cannot not write data to this stream")
        tcpClient.Close()
      Else
        If Not networkStream.CanWrite Then
          Console.WriteLine("cannot read data from this stream")
          tcpClient.Close()
        End If
      End If
    End If
    ' pause so user can view the console output
    Console.ReadLine()
  End Sub
End Class

'Сервер **********************************************
Imports System.Net.Sockets
Imports System.Text
Class TCPSrv
  Shared Sub Main()
    ' Must listen on correct port- must be same as port client wants to connect on.
    Const portNumber As Integer = 8000
    Dim tcpListener As New TcpListener(portNumber)
    tcpListener.Start()
    Console.WriteLine("Waiting for connection...")
    Try
      'Accept the pending client connection and return 
      'a TcpClient initialized for communication. 
      Dim tcpClient As TcpClient = tcpListener.AcceptTcpClient()
      Console.WriteLine("Connection accepted.")
      ' Get the stream
      Dim networkStream As NetworkStream = tcpClient.GetStream()
      ' Read the stream into a byte array
      Dim bytes(tcpClient.ReceiveBufferSize) As Byte
      networkStream.Read(bytes, 0, CInt(tcpClient.ReceiveBufferSize))
      ' Return the data received from the client to the console.
      Dim clientdata As String = Encoding.ASCII.GetString(bytes)
      Console.WriteLine(("Client sent: " + clientdata))
      Dim responseString As String = "Connected to server."
      Dim sendBytes As [Byte]() = Encoding.ASCII.GetBytes(responseString)
      networkStream.Write(sendBytes, 0, sendBytes.Length)
      Console.WriteLine(("Message Sent /> : " + responseString))
      'Any communication with the remote client using the TcpClient can go here.
      'Close TcpListener and TcpClient.
      tcpClient.Close()
      tcpListener.Stop()
      Console.WriteLine("exit")
      Console.ReadLine()
    Catch e As Exception
      Console.WriteLine(e.ToString())
      Console.ReadLine()
    End Try
  End Sub
  End Class
Файлы TCP Client.zip (23,72 Кб)
Об авторе

Питер Бромберг

Нет информации об авторе...
Питер Бромберг
Последние комментарии (всего: 0)

Добавлять комментарии могут только зарегистрированные пользователи сайта.
Если у Вас уже есть учетная запись на Kbyte.Ru, пройдите процедуру авторизации OpenID.
Если Вы еще не зарегистрированы на Kbyte.Ru - зарегистрируйтесь.


Нет комментариев...

Авторизация
 
OpenID
Зарегистрируйся и получи 10% скидку на добавление своего сайта в каталоги! Подробнее »
Поиск по сайту
Реклама
Счетчики