You are on page 1of 1

Imports System.Net, System.Net.

Sockets Public Class frmServer Dim serverSocket As Socket Dim clientSocket As Socket Private Sub frmServer_Load(ByVal sender As System.Object, ByVal e As System. EventArgs) Handles MyBase.Load serverSocket = New Socket(AddressFamily.InterNetwork, SocketType.Stream , ProtocolType.Tcp) Dim IpEndPoint As IPEndPoint = New IPEndPoint(IPAddress.Any, 8800) serverSocket.Bind(IpEndPoint) serverSocket.Listen(5) serverSocket.BeginAccept(New AsyncCallback(AddressOf OnAccept), Nothing ) End Sub Private Sub OnAccept(ByVal ar As IAsyncResult) clientSocket = serverSocket.EndAccept(ar) serverSocket.BeginAccept(New AsyncCallback(AddressOf OnAccept), Nothing ) AddClient(clientSocket) End Sub Delegate Sub _AddClient(ByVal client As Socket) Private Sub AddClient(ByVal client As Socket) If InvokeRequired Then Invoke(New _AddClient(AddressOf AddClient), client) Exit Sub End If Dim lvi As New ListViewItem(client.LocalEndPoint.ToString) lvi.Tag = client lsvClients.Items.Add(lvi) End Sub Private Sub Send(ByVal msg As String, ByVal client As Socket) Dim sendBytes As Byte() = System.Text.ASCIIEncoding.ASCII.GetBytes(msg) client.BeginSend(sendBytes, 0, sendBytes.Length, SocketFlags.None, New AsyncCallback(AddressOf OnSend), client) End Sub Private Sub OnSend(ByVal ar As IAsyncResult) Dim client As Socket = ar.AsyncState client.EndSend(ar) End Sub Private Sub SendMessageToolStripMenuItem_Click(ByVal sender As System.Objec t, ByVal e As System.EventArgs) Handles SendMessageToolStripMenuItem.Click Send("Message from server", lsvClients.SelectedItems(0).Tag) End Sub End Class

You might also like