I want to wait for 10 sec before that the server accept connexion of a client, i ve been looking in the net but i did not find an example,
this is the code i wrote , is there anyone who could give a solution for that, thanks a lot:
class Program
{
// Thread signal.
public static ManualResetEvent tcpClientConnected = new ManualResetEvent(false);
// Accept one client connection asynchronously.
public static void DoBeginAcceptTcpClient(TcpListener listener)
{
// Set the event to nonsignaled state.
tcpClientConnected.Reset();
// Start to listen for connections from a client.
Console.WriteLine("Waiting for a connection...");
// Accept the connection.
// BeginAcceptSocket() creates the accepted socket.
listener.BeginAcceptTcpClient(new AsyncCallback(DoAcceptTcpClientCallback),listener);
// Wait until a connection is made and processed before
// continuing.
tcpClientConnected.WaitOne(10000);
}
// Process the client connection.
public static void DoAcceptTcpClientCallback(IAsyncResult ar)
{
// Get the listener that handles the client request.
TcpListener listener = (TcpListener)ar.AsyncState;
// End the operation and display the received data on
// the console.
TcpClient client = listener.EndAcceptTcpClient(ar);
// Process the connection here. (Add the client to a
// server table, read data, etc.)
Console.WriteLine("Client connected completed");
// Signal the calling thread to continue.
tcpClientConnected.Set();
}
static void Main(string[] args)
{
Int32 port = 1300;
IPAddress localAddr = IPAddress.Parse("127.0.0.1");
TcpListener listener = new TcpListener(localAddr, port);
listener.Start();
while (true)
{
DoBeginAcceptTcpClient(listener);
}
}
}
I really don't want to know why you'd want this, but simply waiting before ending the accept will do that: