0

サーバーがクライアントの接続を受け入れる前に 10 秒待ちたいのですが、ネットで探していましたが、例が見つかりませんでした。

これは私が書いたコードです。そのための解決策を提供できる人はいますか?どうもありがとう:

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);
        }

    }
}
4

1 に答える 1