Synchronous Client Socket Example

The following example program creates a client that connects to a server. The client is built with a synchronous socket, so execution of the client application is suspended until the server returns a response. The application sends a string to the server and then displays the string returned by the server on the console.

Imports System  
Imports System.Net  
Imports System.Net.Sockets  
Imports System.Text  

Public Class SynchronousSocketClient  

    Public Shared Sub Main()  
        ' Data buffer for incoming data.  
        Dim bytes(1024) As Byte  

        ' Connect to a remote device.  

        ' Establish the remote endpoint for the socket.  
        ' This example uses port 11000 on the local computer.  
        Dim ipHostInfo As IPHostEntry = Dns.Resolve(Dns.GetHostName())  
        Dim ipAddress As IPAddress = ipHostInfo.AddressList(0)  
        Dim remoteEP As New IPEndPoint(ipAddress, 11000)  

        ' Create a TCP/IP socket.  
        Dim sender As New Socket(AddressFamily.InterNetwork, _  
            SocketType.Stream, ProtocolType.Tcp)  

        ' Connect the socket to the remote endpoint.  
        sender.Connect(remoteEP)  

        Console.WriteLine("Socket connected to {0}", _  
            sender.RemoteEndPoint.ToString())  

        ' Encode the data string into a byte array.  
        Dim msg As Byte() = _  
            Encoding.ASCII.GetBytes("This is a test<EOF>")  

        ' Send the data through the socket.  
        Dim bytesSent As Integer = sender.Send(msg)  

        ' Receive the response from the remote device.  
        Dim bytesRec As Integer = sender.Receive(bytes)  
        Console.WriteLine("Echoed test = {0}", _  
            Encoding.ASCII.GetString(bytes, 0, bytesRec))  

        ' Release the socket.  
        sender.Shutdown(SocketShutdown.Both)  
        sender.Close()  
    End Sub  

End Class 'SynchronousSocketClient  
using System;  
using System.Net;  
using System.Net.Sockets;  
using System.Text;  

public class SynchronousSocketClient {  

    public static void StartClient() {  
        // Data buffer for incoming data.  
        byte[] bytes = new byte[1024];  

        // Connect to a remote device.  
        try {  
            // Establish the remote endpoint for the socket.  
            // This example uses port 11000 on the local computer.  
            IPHostEntry ipHostInfo = Dns.Resolve(Dns.GetHostName());  
            IPAddress ipAddress = ipHostInfo.AddressList[0];  
            IPEndPoint remoteEP = new IPEndPoint(ipAddress,11000);  

            // Create a TCP/IP  socket.  
            Socket sender = new Socket(AddressFamily.InterNetwork,   
                SocketType.Stream, ProtocolType.Tcp );  

            // Connect the socket to the remote endpoint. Catch any errors.  
            try {  
                sender.Connect(remoteEP);  

                Console.WriteLine("Socket connected to {0}",  
                    sender.RemoteEndPoint.ToString());  

                // Encode the data string into a byte array.  
                byte[] msg = Encoding.ASCII.GetBytes("This is a test<EOF>");  

                // Send the data through the socket.  
                int bytesSent = sender.Send(msg);  

                // Receive the response from the remote device.  
                int bytesRec = sender.Receive(bytes);  
                Console.WriteLine("Echoed test = {0}",  
                    Encoding.ASCII.GetString(bytes,0,bytesRec));  

                // Release the socket.  
                sender.Shutdown(SocketShutdown.Both);  
                sender.Close();  

            } catch (ArgumentNullException ane) {  
                Console.WriteLine("ArgumentNullException : {0}",ane.ToString());  
            } catch (SocketException se) {  
                Console.WriteLine("SocketException : {0}",se.ToString());  
            } catch (Exception e) {  
                Console.WriteLine("Unexpected exception : {0}", e.ToString());  
            }  

        } catch (Exception e) {  
            Console.WriteLine( e.ToString());  
        }  
    }  

    public static int Main(String[] args) {  
        StartClient();  
        return 0;  
    }  
}  

See Also

Synchronous Server Socket Example
Using a Synchronous Client Socket
Socket Code Examples