• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

C# IScsMessage类代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了C#中IScsMessage的典型用法代码示例。如果您正苦于以下问题:C# IScsMessage类的具体用法?C# IScsMessage怎么用?C# IScsMessage使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。



IScsMessage类属于命名空间,在下文中一共展示了IScsMessage类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C#代码示例。

示例1: SerializeMessage

        protected override byte[] SerializeMessage(IScsMessage message)
        {
            var bytes = base.SerializeMessage(message);
            if (compress) bytes = CompressionManager.CompressGZip(bytes);
            if (encrypt) bytes = XXTEA.Encrypt(bytes, keys);

            return bytes;
        }
开发者ID:rajayaseelan,项目名称:mysoftsolution,代码行数:8,代码来源:CustomWireProtocol.cs


示例2: GetBytes

        public byte[] GetBytes(IScsMessage message)
        {
            //Serialize the message to a byte array
            byte[] bytes = message is ScsTextMessage ? 
                Encoding.Default.GetBytes(((ScsTextMessage)message).Text) :
                ((ScsRawDataMessage)message).MessageData;

            return bytes;
        }
开发者ID:aerzy,项目名称:OpenNos,代码行数:9,代码来源:WireProtocol.cs


示例3: GetBytes

 public byte[] GetBytes(IScsMessage message)
 {
     try
     {
         Cmd cmd = message as Cmd;
         return _packer.pack(cmd).ToArray();
     }
     catch
     {
         return null;
     }
 }
开发者ID:HowieXue,项目名称:Hospital_projs,代码行数:12,代码来源:EzWireProtocol.cs


示例4: GetBytes

 public byte[] GetBytes(IScsMessage message)
 {
     var m = message as Protocols.GpsMessage;
     List<byte> bytes = new List<byte>();
     logger.Debug("Data {0}", BitConverter.ToString(m.Data));
     if (m.Data != null)
     {
         bytes.Add(0x02);
         bytes.Add(m.Data[m.Data.Length - 2]);
         bytes.Add(m.Data[m.Data.Length - 1]);
         m.Data = bytes.ToArray();
     }
     return bytes.ToArray();
 }
开发者ID:aawee0,项目名称:GT02a_tracker_service,代码行数:14,代码来源:GallileoWireProtocol.cs


示例5: SendMessage

 public void SendMessage(IPEndPoint remote, IScsMessage msg)
 {
     try
     {
         byte[] buffer = this.WireProtocol.GetBytes(msg);
         if (buffer != null)
             _udp_peer.SendData(buffer, remote);
     }
     catch (System.Exception ex)
     {
         EzLogger.GlobalLogger.warning(string.Format("{0}{2}{1}{2}",
             ex.Message, ex.StackTrace, Environment.NewLine));
     }
 }
开发者ID:HowieXue,项目名称:Hospital_projs,代码行数:14,代码来源:EzUdpPeer.cs


示例6: GetBytes

 /// <summary>
 /// Serializes a message to a byte array to send to remote application.
 ///             This method is synchronized. So, only one thread can call it concurrently.
 /// 
 /// </summary>
 /// <param name="message">Message to be serialized</param><exception cref="T:Tera.NetworkApi.Communication.Scs.Communication.CommunicationException">Throws CommunicationException if message is bigger than maximum allowed message length.</exception>
 public byte[] GetBytes(IScsMessage message)
 {
     byte[] numArray = this.SerializeMessage(message);
     int length = numArray.Length;
     if (length > 134217728)
     {
         throw new CommunicationException("Message is too big (" + (object)length + " bytes). Max allowed length is " + (string)(object)134217728 + " bytes.");
     }
     else
     {
         byte[] buffer = new byte[length + 4];
         BinarySerializationProtocol.WriteInt32(buffer, 0, length);
         Array.Copy((Array)numArray, 0, (Array)buffer, 4, length);
         return buffer;
     }
 }
开发者ID:arkanoid1,项目名称:Temu,代码行数:22,代码来源:BinarySerializationProtocol.cs


示例7: SerializeMessage

        /// <summary>
        /// The sender of a message needs to provide a means to convert a (high-level) object into raw bytes
        /// that will be sent over the network connection.
        /// </summary>
        protected override byte[] SerializeMessage(IScsMessage message)
        {
            if (message is ScsRawDataMessage)
            {
                return (((ScsRawDataMessage)message).MessageData);
            }

            if (message is ScsTextMessage)
            {
                return Encoding.UTF8.GetBytes(((ScsTextMessage)message).Text);
            }

            if (message is ScsPingMessage)
            {
                //if the application idles, occasional ScsPingMessage(s) are being sent out
                //trying to serialize this as ScsTextMessage will throw an exception
            }

            return null;
        }
开发者ID:ChaosCom,项目名称:scs,代码行数:24,代码来源:MyWireProtocol.cs


示例8: GetBytes

        /// <summary>
        /// Serializes a message to a byte array to send to remote application.
        /// This method is synchronized. So, only one thread can call it concurrently.
        /// </summary>
        /// <param name="message">Message to be serialized</param>
        /// <exception cref="CommunicationException">Throws CommunicationException if message is bigger than maximum allowed message length.</exception>
        public byte[] GetBytes(IScsMessage message)
        {
            //Serialize the message to a byte array
            var serializedMessage = SerializeMessage(message); 
           
            //Check for message length
            var messageLength = serializedMessage.Length;
            if (messageLength > MaxMessageLength)
            {
                throw new CommunicationException("Message is too big (" + messageLength + " bytes). Max allowed length is " + MaxMessageLength + " bytes.");
            }

            //Create a byte array including the length of the message (4 bytes) and serialized message content
            var bytes = new byte[messageLength + 4];
            WriteInt32(bytes, 0, messageLength);
            Array.Copy(serializedMessage, 0, bytes, 4, messageLength);

            //Return serialized message by this protocol
            return bytes;
        }
开发者ID:BorjaSanchidrian,项目名称:scs,代码行数:26,代码来源:BinarySerializationProtocol.cs


示例9: SendMessageWithReplyAsync

        /// <summary>
        /// Send a Message and Wati for Reply
        /// </summary>
        /// <typeparam name="T">The expected Value</typeparam>
        /// <param name="msg">the message to send</param>
        /// <returns></returns>
        public static Task<IScsMessage> SendMessageWithReplyAsync(this IScsClient client, IScsMessage msg)
        {
            TaskCompletionSource<IScsMessage> tcs = new TaskCompletionSource<IScsMessage>();

            using (var requestReplyMessenger = new RequestReplyMessenger<IScsClient>(client))
            {
                requestReplyMessenger.Start(); //Start request/reply messenger

                //Send user message to the server and get response
                try {
                    var response = requestReplyMessenger.SendMessageAndWaitForResponse(msg);
                    tcs.SetResult(response);
                }
                catch (Exception ex)
                {
                    tcs.SetException(ex);
                }
            }

            return tcs.Task;
        }
开发者ID:furesoft,项目名称:scs,代码行数:27,代码来源:AsyncExtensions.cs


示例10: OnMessageReceived

        protected virtual void OnMessageReceived(IPEndPoint remote, IScsMessage msg)
        {
            EzLogger.GlobalLogger.debug(string.Format("udp message from {0}: {1}", remote, msg));

            if (MessageReceived != null)
            {
                MessageReceived(remote, new MessageEventArgs(msg));
            }
        }
开发者ID:HowieXue,项目名称:Hospital_projs,代码行数:9,代码来源:EzUdpPeer.cs


示例11: OnMessageReceived

 /// <summary>
 /// Raises MessageReceived event.
 /// 
 /// </summary>
 /// <param name="message">Received message</param>
 private void OnMessageReceived(IScsMessage message)
 {
     EventHandler<MessageEventArgs> eventHandler = this.MessageReceived;
     if (eventHandler == null)
         return;
     eventHandler((object)this, new MessageEventArgs(message));
 }
开发者ID:Koushi009,项目名称:Temu,代码行数:12,代码来源:ScsServerClient.cs


示例12: SendMessage

 /// <summary>
 /// Sends a message to the client.
 /// 
 /// </summary>
 /// <param name="message">Message to be sent</param>
 public void SendMessage(IScsMessage message)
 {
     this._communicationChannel.SendMessage(message);
 }
开发者ID:Koushi009,项目名称:Temu,代码行数:9,代码来源:ScsServerClient.cs


示例13: GetBytes

 public byte[] GetBytes(IScsMessage message)
 {
     return ((SendPacket) message).Data;
 }
开发者ID:wwhitehead,项目名称:ProjectFaolan,代码行数:4,代码来源:ConanWireProtocol.cs


示例14: SendMessage

        /// <summary>
        /// Sends a message to the server.
        /// </summary>
        /// <param name="message">Message to be sent</param>
        /// <exception cref="CommunicationStateException">Throws a CommunicationStateException if client is not connected to the server.</exception>
        public void SendMessage(IScsMessage message)
        {
            if (CommunicationState != CommunicationStates.Connected)
            {
                throw new CommunicationStateException("Client is not connected to the server.");
            }

            _communicationChannel.SendMessage(message);
        }
开发者ID:aerzy,项目名称:OpenNos,代码行数:14,代码来源:ScsClientBase.cs


示例15: SendMessageInternal

        /// <summary>
        /// Sends a message to the remote application.
        /// </summary>
        /// <param name="message">Message to be sent</param>
        protected override void SendMessageInternal(IScsMessage message)
        {
            //Send message
            var totalSent = 0;
            lock (_syncLock)
            {
                //Create a byte array from message according to current protocol
                var messageBytes = WireProtocol.GetBytes(message);
                //Send all bytes to the remote application
                while (totalSent < messageBytes.Length)
                {
                    var sent = _clientSocket.Send(messageBytes, totalSent, messageBytes.Length - totalSent, SocketFlags.None);
                    if (sent <= 0)
                    {
                        throw new CommunicationException("Message could not be sent via TCP socket. Only " + totalSent + " bytes of " + messageBytes.Length + " bytes are sent.");
                    }

                    totalSent += sent;
                }

                LastSentMessageTime = DateTime.Now;
                OnMessageSent(message);
            }
        }
开发者ID:HaKDMoDz,项目名称:eStd,代码行数:28,代码来源:TcpCommunicationChannel.cs


示例16: SendMessageInternal

 /// <summary>
 /// Sends a message to the remote application.
 /// 
 /// </summary>
 /// <param name="message">Message to be sent</param>
 protected override void SendMessageInternal(IScsMessage message)
 {
     int offset = 0;
     lock (this._syncLock)
     {
         byte[] local_1 = this.WireProtocol.GetBytes(message);
         while (offset < local_1.Length)
         {
             int local_2 = this._clientSocket.Send(local_1, offset, local_1.Length - offset, SocketFlags.None);
             if (local_2 <= 0)
                 throw new CommunicationException("Message could not be sent via TCP socket. Only " + (object)offset + " bytes of " + (string)(object)local_1.Length + " bytes are sent.");
             else
                 offset += local_2;
         }
         this.LastSentMessageTime = DateTime.Now;
         this.OnMessageSent(message);
     }
 }
开发者ID:arkanoid1,项目名称:Temu,代码行数:23,代码来源:TcpCommunicationChannel.cs


示例17: MessageEventArgs

 /// <summary>
 /// Creates a new MessageEventArgs object.
 /// </summary>
 /// <param name="message">Message object that is associated with this event</param>
 public MessageEventArgs(IScsMessage message, DateTime receivedTimestamp)
 {
     Message = message;
     ReceivedTimestamp = receivedTimestamp;
 }
开发者ID:OpenNos,项目名称:OpenNos,代码行数:9,代码来源:MessageEventArgs.cs


示例18: GetBytes

 public byte[] GetBytes(IScsMessage message)
 {
     Session.Encrypt(ref ((GameMessage) message).Data);
     return ((GameMessage) message).Data;
 }
开发者ID:ZettaZero,项目名称:TeraEmulator,代码行数:5,代码来源:GameProtocol.cs


示例19: GetBytes

 public byte[] GetBytes(IScsMessage message)
 {
     return ((OuterNetworkMessage)message).Data;
 }
开发者ID:mMellowz,项目名称:revcore,代码行数:4,代码来源:OuterWireProtocol.cs


示例20: SendMessageInternal

        /// <summary>
        /// Sends a message to the remote application.
        /// </summary>
        /// <param name="message">Message to be sent</param>
        protected override void SendMessageInternal(IScsMessage message)
        {
            //Send message
            var totalSent = 0;
            lock (_syncLock)
            {
                //Create a byte array from message according to current protocol
                var messageBytes = WireProtocol.GetBytes(message);
                //Send all bytes to the remote application
                while (totalSent < messageBytes.Length)
                {
                    try
                    {
                        var sent = _clientSocket.Send(messageBytes, totalSent, messageBytes.Length - totalSent, SocketFlags.None);
                        if (sent <= 0)
                        {
                            throw new CommunicationException("Message could not be sent via TCP socket. Only " + totalSent + " bytes of " + messageBytes.Length + " bytes are sent.");
                        }

                        totalSent += sent;
                    }
                    catch (SocketException ex)
                    {
                        if (ex.SocketErrorCode == SocketError.WouldBlock ||
                            ex.SocketErrorCode == SocketError.IOPending ||
                            ex.SocketErrorCode == SocketError.NoBufferSpaceAvailable)
                        {
                            // socket buffer is probably full, wait and try again
                            Thread.Sleep(30);
                        }
                    }
                }

                LastSentMessageTime = DateTime.Now;

                OnMessageSent(message);
            }
        }
开发者ID:rajayaseelan,项目名称:mysoftsolution,代码行数:42,代码来源:TcpCommunicationChannel.cs



注:本文中的IScsMessage类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
C# ISdmxObject类代码示例发布时间:2022-05-24
下一篇:
C# IScripture类代码示例发布时间:2022-05-24
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap