VB.Net/Network Remote/TCP Server — различия между версиями
Admin (обсуждение | вклад) м (1 версия) |
|
(нет различий)
|
Текущая версия на 12:45, 26 мая 2010
TCP Server Demo
Imports System.Net
Imports System.Net.Sockets
Imports System.IO
Imports System.Threading
Public Class MainClass
Shared Stream As NetworkStream
Public Shared Sub Main()
Dim Listener As New TcpListener(11000)
Listener.Start()
Console.WriteLine("TCP Server Waiting for a connection...")
Try
Dim Client As TcpClient = Listener.AcceptTcpClient()
Console.WriteLine("Connection accepted.")
Console.WriteLine(New String("-", 40))
Console.WriteLine()
Stream = Client.GetStream()
Dim ReceiveThread As New Thread(AddressOf ReceiveData)
ReceiveThread.IsBackground = True
ReceiveThread.Start()
Dim w As New BinaryWriter(Stream)
Dim Text As String
Do
Text = Console.ReadLine()
If Text <> "QUIT" Then w.Write(Text)
Loop Until Text.ToUpper() = "QUIT"
ReceiveThread.Abort()
Client.Close()
Listener.Stop()
Catch Err As Exception
Console.WriteLine(Err.ToString())
End Try
End Sub
Shared Private Sub ReceiveData()
Dim r As New BinaryReader(Stream)
Do
If Stream.DataAvailable Then
Console.WriteLine("RECEIVED: " + r.ReadString())
End If
Loop
End Sub
End Class
TCP Server socket
Imports System.Threading
Imports System.Net.Sockets
Imports System.IO
Public Class MainClass
Shared Dim connection As Socket
Shared Dim readThread As Thread
Shared Dim socketStream As NetworkStream
Shared Private writer As BinaryWriter
Shared Private reader As BinaryReader
Public Shared Sub Main()
readThread = New Thread(AddressOf RunServer)
readThread.Start()
Try
writer.Write("SERVER>>> " ) " send data
Console.WriteLine("SERVER>>> " )
connection.Close()
Catch exception As SocketException
Console.WriteLine("Error writing object")
End Try
End Sub
Shared Public Sub RunServer()
Dim listener As TcpListener
Dim counter As Integer = 1
Try
listener = New TcpListener(5000)
listener.Start()
While True
Console.WriteLine("Waiting for connection" )
connection = listener.AcceptSocket()
socketStream = New NetworkStream(connection)
writer = New BinaryWriter(socketStream)
reader = New BinaryReader(socketStream)
Console.WriteLine("Connection " & counter &" received.")
writer.Write("SERVER>>> Connection successful")
Dim theReply As String = ""
Try
Do
theReply = reader.ReadString()
Console.WriteLine(theReply)
Loop While (theReply <> "CLIENT>>> TERMINATE" _
AndAlso connection.Connected)
Catch inputOutputException As IOException
Console.WriteLine("Client application closing")
Finally
Console.WriteLine("User terminated connection")
writer.Close()
reader.Close()
socketStream.Close()
connection.Close()
counter += 1
End Try
End While
Catch inputOutputException As IOException
Console.WriteLine("Server application closing")
End Try
End Sub
End Class