Introduction
In this article, learn C# socket programming. First, we will see how to create a C# socket and set up a listener server node that starts listening to any messages coming its way via the predefined IP and protocol. We will also see how to create a client application that will send messages to a listener server and read them using Sockets. The sample code is written in C# and .NET Core.
Sockets in computer networks are used to establish a connection between two or more computers and to send data from one computer to another. Each computer in the network is called a node. Sockets use nodes’ IP addresses and a network protocol to create a secure channel of communication and use this channel to transfer data.
![]()
Figure 1
Socket client and server communication.
In socket communication, one node acts as a listener, and the other node acts as a client. The listener node opens itself upon a pre-established IP address and on a predefined protocol and starts listening. Clients who want to send messages to the server start broadcasting messages on the same IP address and same protocol. A typical socket connection uses the Transmission Control Protocol (TCP) to communicate.
In this article, we will see how to create a socket and set up a listener server node that starts listening to any messages coming to it via the predefined IP and protocol. We will also see how to create a client application that will send a message to the listener server and read it. The sample code is written in C# and .NET Core.
Step 1. Create a Listener
Create a .NET Core Console app and write the following code.
The code above creates a Socket listener on the local host using TCP protocol, and any messages captured from the client, it displayed it on the console. The listener can request 10 clients at a time, and the 11th request will give a server busy message.
Output
![]()
Figure 2
Step 2. Create a Client
A client application is one that establishes a connection with a server/listener and sends a message. Create another .NET Core console application and write the following code
The sample code below creates a client application that creates a socket connection with the listener on the given IP and the port and sends a message.
Step 3. Test and Run
Now build both projects and run both applications from the command line. You will see the message sent by the client is read and displayed by the listener.
Once the client runs, you will see the message is sent to the server. See Figure 2
![]()
Figure 3
Summary
In this article, you learned how to use Sockets in C# and .NET Core to create a client and a server to communicate via the TCP/IP protocol. This sample works on a local machine, but you can use the same code on a network. All you need to do is change the IP address of the host.