Ejemplo n.º 1
0
 /// <summary>
 /// Create an instance of TcpModelClient
 /// </summary>
 /// <param name="autoReconnect">True if the client can reconnect to server when disconnected automatically; otherwise, false.</param>
 /// <param name="modelHeaderIndicator">A 32-bits integer as the header to indicate the transmitted message is in the type of model.</param>
 /// <param name="packetSpliter">The spliter which is used to split stream data into packets.</param>
 public TcpModelClient(bool autoReconnect, int modelHeaderIndicator, IPacketSpliter packetSpliter) : base(autoReconnect, packetSpliter)
 {
     _modelHeaderIndicator = modelHeaderIndicator;
     _reqResponseAgent     = new RequestResponseAgent(new RelayRequestMessageSender(
                                                          () => RequestTimeOut,
                                                          (clientID, model) => SendModelMessage(model)));
 }
Ejemplo n.º 2
0
        public TcpBasicServerViewModel()
        {
            //1.the default spliter
            //IPacketSpliter spliter = new SimplePacketSpliter();

            //2.packet with specific header which can prevent illegal network connection
            IPacketSpliter headerSpliter = new HeaderPacketSpliter(0xFFFF1111);

            //3.packet with length ahead in network byte order
            IPacketSpliter simpleSpliter = new SimplePacketSpliter(true);

            //4.packet end with specific mark
            IPacketSpliter endMarkSpliter = new EndMarkPacketSpliter(false, (byte)'\x04');

            //5.packet that do not need to be split
            IPacketSpliter rawSpliter = RawPacketSpliter.Default;

            //6.custom packet spliter
            IPacketSpliter customSpliter = new CustomPacketSpliter();

            //_tcpServer = new TcpServer();
            _tcpServer = new TcpServer(simpleSpliter);
            _tcpServer.ClientStatusChanged += OnTcpServer_ClientStatusChanged;
            _tcpServer.MessageReceived     += OnTcpServer_MessageReceived;

            ServerSendText = "I am server";
        }
Ejemplo n.º 3
0
 /// <summary>
 /// Create an instance of TcpModelServer
 /// </summary>
 /// <param name="modelHeaderIndicator">A 32-bits integer as the header to indicate the transmitted message is in the type of model.</param>
 /// <param name="packetSpliter">The spliter used to split stream data into complete packets.</param>
 public TcpModelServer(int modelHeaderIndicator, IPacketSpliter packetSpliter)
     : base(packetSpliter)
 {
     _modelHeaderIndicator = modelHeaderIndicator;
     _reqResponseAgent     = new RequestResponseAgent(new RelayRequestMessageSender
                                                      (
                                                          () => RequestTimeOut,
                                                          (clientID, model) => SendModelMessage(clientID, model)
                                                      ));
 }
Ejemplo n.º 4
0
 /// <summary>
 /// Initializes a new instance of the SiS.Communication.Tcp.TcpClientEx.
 /// </summary>
 /// <param name="autoReconnect">true if use auto reconnect feature; otherwise, false.</param>
 /// <param name="packetSpliter">The spliter which is used to split stream data into packets.</param>
 public TcpClientEx(bool autoReconnect, IPacketSpliter packetSpliter)
 {
     byte[] array = Guid.NewGuid().ToByteArray();
     _clientID      = BitConverter.ToInt64(array, 0);
     _packetSpliter = packetSpliter;
     _autoReconnect = autoReconnect;
     _tcpConfig     = new TcpClientConfig();
     //_tcpConfig = _tcpClientConfig;
     _reconnectWaitEvent = new ManualResetEvent(false);
     if (SynchronizationContext.Current == null)
     {
         SynchronizationContext.SetSynchronizationContext(new SynchronizationContext());
     }
     _syncContext = SynchronizationContext.Current;
 }
Ejemplo n.º 5
0
 /// <summary>
 /// Initializes a new instance of the SiS.Communication.Tcp.TcpClientEx using specific packet spliter without auto reconnect feature.
 /// </summary>
 /// <param name="packetSpliter">The spliter which is used to split stream data into packets.</param>
 public TcpClientEx(IPacketSpliter packetSpliter)
     : this(false, packetSpliter)
 {
 }
Ejemplo n.º 6
0
 /// <summary>
 /// Initializes a new instance of the SiS.Communication.Tcp.TcpServer using specific packet spliter.
 /// </summary>
 /// <param name="packetSpliter">The spliter used to split stream data into complete packets.</param>
 public TcpServer(IPacketSpliter packetSpliter)
 {
     _packetSpliter = packetSpliter;
 }