SocketSignature Class
Namespace: System.Net.Sockets
Assembly: System.Net.Sockets.dll
This document describes the SocketSignature class, a fundamental component within the .NET
networking library. It represents a signature for a socket, used for identification and potentially for
access control or connection management scenarios.
Overview
The SocketSignature class is designed to provide a unique identifier for network sockets.
While not as commonly used directly by application developers as classes like Socket or
IPEndPoint, it plays a role in certain lower-level networking operations and
framework internals. It encapsulates information that can distinguish one socket from another, especially in
scenarios involving multiple concurrent connections.
Syntax
public sealed class SocketSignature
Constructors
The SocketSignature class typically provides constructors to create instances based on
existing socket information.
SocketSignature(Socket)
public SocketSignature(Socket socket);
Initializes a new instance of the SocketSignature class using the specified
Socket object.
Parameters
| Name | Type | Description |
|---|---|---|
socket |
Socket |
A Socket object from which to create the signature. |
Methods
The SocketSignature class inherits methods from the base Object class,
such as Equals(), GetHashCode(), and ToString().
Specific overrides might be provided to facilitate comparisons and string representations of the socket signature.
Equals(object)
public override bool Equals(object obj);
Determines whether the specified object is equal to the current object.
GetHashCode()
public override int GetHashCode();
Serves as the default hash function.
ToString()
public override string ToString();
Returns a string that represents the current SocketSignature object.
This string representation typically includes information about the socket's endpoint.
Properties
While SocketSignature is primarily a data carrier, it might expose properties
to access the underlying socket details it represents.
RemoteEndPoint
public EndPoint RemoteEndPoint { get; }
Gets the remote endpoint associated with the socket signature. This provides information about the remote IP address and port number.
LocalEndPoint
public EndPoint LocalEndPoint { get; }
Gets the local endpoint associated with the socket signature. This provides information about the local IP address and port number.
Requirements
SocketSignature class is part of the
System.Net.Sockets namespace. You need to have a reference to the
System.Net.Sockets.dll assembly to use it.
Example Usage
Here's a conceptual example demonstrating how SocketSignature might be used.
Note that direct instantiation and use of SocketSignature by application code
is less common than using it implicitly through other Socket operations.
using System;
using System.Net;
using System.Net.Sockets;
public class SocketSignatureExample
{
public static void Main(string[] args)
{
try
{
// Create a TCP listener
TcpListener listener = new TcpListener(IPAddress.Loopback, 11000);
listener.Start();
// Create a client socket and connect
Socket clientSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
clientSocket.Connect(new IPEndPoint(IPAddress.Loopback, 11000));
// Accept the connection
Socket acceptedSocket = listener.AcceptSocket();
// Create SocketSignatures
SocketSignature clientSignature = new SocketSignature(clientSocket);
SocketSignature serverSignature = new SocketSignature(acceptedSocket);
Console.WriteLine($"Client Signature: {clientSignature.ToString()}");
Console.WriteLine($"Server Signature: {serverSignature.ToString()}");
// Example of comparing signatures (conceptual)
if (clientSignature.Equals(serverSignature))
{
Console.WriteLine("Signatures are identical (this is unlikely for different sockets).");
}
else
{
Console.WriteLine("Signatures are different.");
}
// Close sockets
clientSocket.Close();
acceptedSocket.Close();
listener.Stop();
}
catch (Exception ex)
{
Console.WriteLine($"An error occurred: {ex.Message}");
}
}
}