VB.Net Tutorial/Socket Network/Socket
Create Socket and make a connection
<source lang="vbnet">Imports System.Net.Sockets Imports System.Net Imports System.Threading
Public Class Tester
Dim Shared mySocket As Socket Public Shared Sub Main Dim myThread As New Thread(New ThreadStart(AddressOf StartConnection)) myThread.Start()
End Sub Private Shared Sub StartConnection() Try mySocket = New Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp) mySocket.Connect(New IPEndPoint(IPAddress.Parse("192.168.1.100"), 12335)) Catch ex As SocketException Console.WriteLine(ex.Message) End Try End Sub
End Class</source>
Date time client based on Socket
<source lang="vbnet">Imports System Imports System.IO Imports System.Net Imports System.Net.Sockets Imports System.Text Public Class DateTimeClient
Public Shared Sub Main() Dim args As String() = Environment.GetCommandLineArgs() Dim serverHost As String = "127.0.0.1" Dim hostadd As IPAddress = Dns.Resolve(serverHost).AddressList(0) Dim EPhost As New IPEndPoint(hostadd, 13) Dim clientSocket As New Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp)
Try clientSocket.Connect(EPhost) Catch ex As Exception Console.WriteLine(ex.ToString()) End Try Try Dim recvbytes(1024) As Byte Dim i As Integer = clientSocket.Receive(recvbytes, 0, clientSocket.Available, SocketFlags.None) Dim datetime As String = Encoding.ASCII.GetString(recvbytes, 0, i) Console.WriteLine("Receive {0} bytes.", i) Console.WriteLine("Current server date/Time: {0}", datetime) clientSocket.Shutdown(SocketShutdown.Both) clientSocket.Close() Catch ec As Exception Console.WriteLine(ec.StackTrace.ToString()) Exit Sub End Try End Sub
End Class</source>
Socket client
<source lang="vbnet">Imports System.Threading Imports System.Net Imports System.Net.Sockets
Public Class ServerSocket
Public Shared Sub Main() Try Dim serverSocket As New Socket( _ AddressFamily.InterNetwork, _ SocketType.Stream, _ ProtocolType.Tcp) Dim serverIP As IPAddress = IPAddress.Parse("127.0.0.1") Dim Port As String = "80" Dim serverhost As New IPEndPoint(serverIP, Int32.Parse(Port)) serverSocket.Bind(serverhost) serverSocket.Listen(50)
Dim lc As New ListenClient(serverSocket) Dim serverthread As Threading.Thread serverthread = New Thread(New Threading.ThreadStart(AddressOf lc.ServerThreadProc)) serverthread.Start() Catch ex As Exception Console.WriteLine(ex.StackTrace.ToString()) End Try End Sub
End Class Public Class ListenClient
Private serverSocket As System.Net.Sockets.Socket Private clientSocket As System.Net.Sockets.Socket Public Sub New(ByVal serverSocket As System.Net.Sockets.Socket) Me.serverSocket = serverSocket End Sub Public Sub ServerThreadProc() Do While True Try Dim clientSocket As Socket = serverSocket.Accept() Dim clientInfo As IPEndPoint = CType( _ clientSocket.RemoteEndPoint, _ IPEndPoint) Dim serverInfo As IPEndPoint = CType( _ serverSocket.LocalEndPoint, _ IPEndPoint) Console.WriteLine("Client: " + clientInfo.Address.ToString() + ":" + clientInfo.Port.ToString()) Console.WriteLine("Server: " + serverInfo.Address.ToString() + ":" + serverInfo.Port.ToString()) Catch ex As Exception Console.WriteLine(ex.StackTrace.ToString()) End Try Loop End Sub
End Class</source>