Example #1
0
        private HPSocketCS.HandleResult Server_OnAccept(IntPtr connId, IntPtr pClient)
        {
            // 客户进入了
            // 获取客户端ip和端口
            string ip   = string.Empty;
            ushort port = 0;

            if (server.GetRemoteAddress(connId, ref ip, ref port))
            {
                //通知客户端连接成功
                SendData sendData = new SendData();
                sendData.ActionCode = ActionCodeBase.ConnectionSuccess;
                server.SendBySerializable(connId, sendData);
                //存储客户端信息
            }
            else
            {
                //Write(string.Format(" > [{0},OnAccept] -> Server_GetClientAddress() Error", connId));
            }

            // 设置附加数据
            ClientInfo clientInfo = new ClientInfo();

            clientInfo.ConnId    = connId;
            clientInfo.IpAddress = ip;
            clientInfo.Port      = port;
            if (server.SetExtra(connId, clientInfo) == false)
            {
                LogHelper.logRecord(string.Format(" > [{0},OnAccept] -> SetConnectionExtra fail", connId));
            }
            this.Invoke(new Action <ClientInfo>(BindClient), clientInfo);
            return(HandleResult.Ok);
        }