コード例 #1
0
        /// <summary>
        /// Method responsible to connect client in server.
        /// </summary>
        /// <param name="ip">The ip address from server.</param>
        /// <param name="port">The port number from server, the default value us 7171</param>
        /// <param name="listenerType">The listener type to creation of listener, the default value is NetworkListenerType.TCP.</param>
        /// <param name="maxMessageBuffer">The max length of message buffer, the default value is 4096.</param>
        /// <returns>The boolean value of client connection.</returns>
        public bool Connect(string ip, ushort port = 7171, NetworkListenerType listenerType = NetworkListenerType.TCP, ushort maxMessageBuffer = 4096)
        {
            try
            {
                if (listenerType == NetworkListenerType.TCP)
                {
                    _networkListener = new TcpNetworkListener(OnMessageReceived, OnDisconnected);
                }
                else if (listenerType == NetworkListenerType.UDP)
                {
                    _networkListener = new UdpNetworkListener(OnMessageReceived, OnDisconnected);
                }
                else if (listenerType == NetworkListenerType.WSBinary || listenerType == NetworkListenerType.WSText)
                {
                    _networkListener = new WSNetworkListener(listenerType, OnMessageReceived, OnDisconnected);
                }

                _clientThread = new Thread(() =>
                {
                    _networkListener.StartClient(ip, port, maxMessageBuffer);
                });

                _clientThread.IsBackground = true;
                _clientThread.Start();

                Thread.Sleep(15); // Delay for socket connection.
            }
            catch (Exception ex)
            {
                Console.WriteLine($"Error: {ex.Message}.");
            }

            return(HasConnected);
        }