Beispiel #1
0
 /// <summary>
 /// 用户名称
 /// </summary>
 /// <param name="userName"></param>
 internal Client(string userName)
 {
     this.userName = userName;
     this.client   = new ChatServer.TcpClient.Server.TcpOpenClient(null, (client, socket) =>
     {
         if (client.login(socket, userName))
         {
             Console.WriteLine("CurrentUser : "******"Login Error : " + userName);
         return(false);
     });
     this.client._TcpClient_.OnSetSocket((socket) =>
     {
         if (socket.IsSocketVersion(ref this.socket))
         {
             getUserKeepCallback = client.getUser((user) =>
             {
                 if (user.Type == Net.TcpServer.ReturnType.Success)
                 {
                     Console.WriteLine(user.Value.Type.ToString() + " + " + user.Value.Name);
                 }
             });
             getMessageKeepCallback = client.getMessage((message) =>
             {
                 if (message.Type == Net.TcpServer.ReturnType.Success)
                 {
                     Console.WriteLine(message.Value.Time.toString() + " " + message.Value.User + " : " + message.Value.Content);
                 }
             });
             Send("Hello");
         }
     });
 }
Beispiel #2
0
        /// <summary>
        /// TCP 客户端套接字初始化处理
        /// </summary>
        /// <param name="socket"></param>
        private void onClientSocket(AutoCSer.Net.TcpServer.ClientSocketBase socket)
        {
            Monitor.Enter(newSocketLock);
            try
            {
                if (socket.IsSocketVersion(ref this.socket))
                {
                    try
                    {
                        if (logKeepCallback != null)
                        {
                            logKeepCallback.Dispose();
                            logKeepCallback = null;
                        }
#if NoAutoCSer
                        throw new Exception();
#else
                        ClientId        = TcpInternalClient.register();
                        logKeepCallback = TcpInternalClient.getLog(ClientId, onLog);
#endif
                        IsClient = true;
                        Client.OnClient(name);
                        return;
                    }
                    catch (Exception error)
                    {
                        AutoCSer.Log.Pub.Log.add(AutoCSer.Log.LogType.Error, error);
#if DotNetStandard
                        AutoCSer.Net.TcpServer.CommandBase.CloseClient(socket.Socket);
#else
                        socket.Socket.Dispose();
#endif
                    }
                    IsClient = false;
                }
            }
            finally { Monitor.Exit(newSocketLock); }
        }