void client_OnServerConnected(object sender, SocketLib.TcpServerConnectedEventArgs e)
 {
     SocketMsgData.SocketMsgBase baseMsg = new SocketMsgData.SocketMsgBase();
     baseMsg.LinkType  = "1";
     baseMsg.MsgType   = SocketMsgData.TcpMsgDataType.ClientToken;
     baseMsg.Sender    = schoolNum;
     baseMsg.SubSystem = SocketMsgData.TcpSeatManageSubSystem.SocketClient;
     client.Send(SeatManage.SeatManageComm.ByteSerializer.ObjectToByte(baseMsg));
 }
        /// <summary>
        /// 发送请求的数据包
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        private string CallService(SocketRequest request)
        {
            try
            {
                lock (this.client)
                {
                    SocketConnect(0);

                    request.SubSystem = TcpSeatManageSubSystem.AndroidApp;
                    request.Target    = schoolNum;
                    request.MsgType   = TcpMsgDataType.Relay;
                    client.Send(SeatManage.SeatManageComm.ByteSerializer.ObjectToByte(request));
                    Console.WriteLine("请求客户端{0}执行{1}方法已发送,等待返回结果…", request.Target, request.RequestMethodType);
                    autoConnectEvent.WaitOne(20000);
                    if (response == null)
                    {
                        throw new Exception("连接超时。");
                    }
                    else if (!isError && string.IsNullOrEmpty(response.ErrorMsg))
                    {
                        return(response.Result as string);
                    }
                    else if (!string.IsNullOrEmpty(response.ErrorMsg))
                    {
                        throw new Exception(response.ErrorMsg);
                    }
                    else
                    {
                        return(null);
                    }
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
                request  = null;
                response = null;
                client.Disconnect();
            }
        }
Exemple #3
0
 public SeatManage.ClassModel.ReaderInfo CheckAndGetReaderInfo(UserInfo user)
 {
     try
     {
         lock (this.client)
         {
             client.Connect();//连接
             request            = new SocketRequest();
             request.MethodName = "CheckAndGetReaderInfo";
             request.Parameters.Add(user);
             request.SubSystem = TcpSeatManageSubSystem.WeiXinSeatBespeak;
             request.Target    = schoolNum;
             request.MsgType   = TcpMsgDataType.Relay;
             if (request != null)
             {
                 client.Send(SeatManage.SeatManageComm.ByteSerializer.ObjectToByte(request));
                 Console.WriteLine("请求客户端{0}执行{1}方法已发送,等待返回结果…", request.Target, request.MethodName);
             }
             autoConnectEvent.WaitOne(20000);
             if (response == null)
             {
                 throw new Exception("连接超时。");
             }
             else if (!isError && response.MethodName.Equals("CheckAndGetReaderInfo") && string.IsNullOrEmpty(response.ErrorMsg))
             {
                 return(response.Result as ReaderInfo);
             }
             else if (!string.IsNullOrEmpty(response.ErrorMsg))
             {
                 throw new Exception(response.ErrorMsg);
             }
             else
             {
                 return(null);
             }
         }
     }
     catch (Exception ex)
     {
         throw ex;
     }
     finally
     {
         request  = null;
         response = null;
         client.Disconnect();
     }
 }
 void client_OnServerConnected(object sender, SocketLib.TcpServerConnectedEventArgs e)
 {
     Thread.Sleep(5000);
     client.Send(byteDatas);
     autoConnectEvent.Set();
 }