public Start ( |
||
localEndPoint | The endpoint which the server will listening for conenction requests on | |
return | void |
public void Start(IPEndPoint localEndPoint)
{
// create the socket which listens for incoming connections
listenSocket = new Socket(localEndPoint.AddressFamily, SocketType.Stream, ProtocolType.Tcp);
listenSocket.Bind(localEndPoint);
// start the server with a listen backlog of 100 connections
listenSocket.Listen(100);
// post accepts on the listening socket
StartAccept(null);
//Console.WriteLine("{0} connected sockets with one outstanding receive posted to each....press any key", m_outstandingReadCount);
Console.WriteLine("Press any key to terminate the server process....");
Console.ReadKey();
}
static void Main(string[] args) { int numConnections = 1; int receiveSize = 2048; IPEndPoint localEndPoint; int port = 11000; try { string addressFamily = "ipv6"; if (numConnections <= 0) { throw new ArgumentException("The number of connections specified must be greater than 0"); } if (receiveSize <= 0) { throw new ArgumentException("The receive size specified must be greater than 0"); } if (port <= 0) { throw new ArgumentException("The listenPort specified must be greater than 0"); } // This sample supports two address family types: ipv4 and ipv6 if (addressFamily.Equals("ipv4")) { localEndPoint = new IPEndPoint(IPAddress.Any, port); } else if (addressFamily.Equals("ipv6")) { localEndPoint = new IPEndPoint(IPAddress.IPv6Any, port); } else { throw new ArgumentException("Invalid address family specified"); } } catch (Exception e) { Console.WriteLine(e.Message); Console.WriteLine("Usage: AsyncSocketServer.exe <#connections> <receiveSizeInBytes> <address family: ipv4 | ipv6> <Local Port Number>"); return; } Console.WriteLine("Press any key to start the server ..."); Console.ReadKey(); // Start the server listening for incoming connection requests Server server = new Server(numConnections, receiveSize); server.Init(); server.Start(localEndPoint); Console.Read(); }