Beispiel #1
0
        private void Adapter_ErrorOccured(object sender, SocketHelper.Events.ErrorEventArgs args)
        {
            SocketAdapter adapter = sender as SocketAdapter;

            Console.WriteLine("Adapter ErrorOccured:" + args.ErrorMessage + "__" + adapter.RemoteEndPoint);
            adapter.Close();
        }
Beispiel #2
0
 private void uninstallEvent()
 {
     _adapter.Closed           -= _adapter_Closed;
     _adapter.ErrorOccured     -= _adapter_ErrorOccured;
     _adapter.ReceiveCompleted -= _adapter_ReceiveCompleted;
     _adapter = null;
 }
Beispiel #3
0
        private void onErrorOccured(object sender, SocketHelper.Events.ErrorEventArgs args)
        {
            SocketAdapter adapter = sender as SocketAdapter;

            Logger.Default.Debug("Adapter ErrorOccured:" + args.ErrorMessage + "__" + adapter.RemoteEndPoint);
            adapter.Close();
        }
        private void onErrorOccured(object sender, SocketHelper.Events.ErrorEventArgs args)
        {
            SocketAdapter adapter = sender as SocketAdapter;

            Common.Log.Logger.Default.Trace($"Adapter ErrorOccured:{ConnectInfom} {args.ErrorMessage} __{adapter.RemoteEndPoint}");
            adapter.Close();
        }
Beispiel #5
0
        private void onClosed(object sender, EventArgs e)
        {
            SocketAdapter adapter = sender as SocketAdapter;

            Logger.Default.Debug("Adapter has closed!_" + adapter.RemoteEndPoint);
            Dispose();
        }
Beispiel #6
0
        public IModbusMaster CreateMaster(Socket client)
        {
            var adapter = new SocketAdapter(client);

            var transport = new ModbusRtuTransport(adapter, this, Logger);

            return(new ModbusSerialMaster(transport));
        }
Beispiel #7
0
 public StreamPipe(SocketAdapter adapter)
 {
     Id                         = Guid.NewGuid().ToString();
     _adapter                   = adapter;
     _adapter.Closed           += _adapter_Closed;
     _adapter.ErrorOccured     += _adapter_ErrorOccured;
     _adapter.ReceiveCompleted += _adapter_ReceiveCompleted;
 }
Beispiel #8
0
        private void Server_ClientAccepted(object sender, SocketHelper.Events.ClientAcceptedEventArgs args)
        {
            string        endpoint = args.Adapter.RemoteEndPoint.ToString();
            SocketAdapter adapter  = args.Adapter;

            addEvent(adapter);
            adapter.Send((int)ParamCode.EnsureConnect);
        }
        private void onClosed(object sender, EventArgs e)
        {
            SocketAdapter adapter = sender as SocketAdapter;

            //Logger.Default.Debug("Adapter has closed!_" + adapter.RemoteEndPoint);
            Common.Log.Logger.Default.Trace($"{adapter.RemoteEndPoint} 离线.{ConnectInfom}");
            Dispose();
        }
 public void Init(SocketAdapter adapter, string connectInfom)
 {
     Adapter      = adapter;
     ConnectInfom = connectInfom;
     Common.Log.Logger.Default.Trace($"{adapter.RemoteEndPoint} 上线.{ConnectInfom}");
     Adapter.ErrorOccured += onErrorOccured;
     Adapter.Closed       += onClosed;
 }
 /// <summary>
 /// Initializes a new instance of the SocketAdapterConnectionFactory class
 /// </summary>
 public SocketAdapterConnectionFactory(ConnectionUri connectionUri
     , ClientCredentials clientCredentials
     , SocketAdapter adapter)
 {
     this.clientCredentials = clientCredentials;
     this.adapter = adapter;
     this._Uri = connectionUri as SocketAdapterConnectionUri;
 }
Beispiel #12
0
 public DownloadSocketManager(SocketAdapter adapter)
 {
     _disposeEvent.Reset();
     Adapter = adapter;
     Adapter.ErrorOccured     += onErrorOccured;
     Adapter.Closed           += onClosed;
     Adapter.ReceiveCompleted += onReceiveCompleted;
     send(ParamCode.EnsureConnect, new byte[0]);
 }
Beispiel #13
0
        private void Adapter_Closed(object sender, EventArgs e)
        {
            SocketAdapter adapter = sender as SocketAdapter;

            if (_isDownload)
            {
                Common.Log.Logger.Default.Trace("结束下载!" + adapter.RemoteEndPoint);
            }
            removeEvent(adapter);
        }
        private void Server_ClientAccepted(object sender, SocketHelper.Events.ClientAcceptedEventArgs args)
        {
            string endpoint = args.Adapter.RemoteEndPoint.ToString();

            Console.WriteLine("ClientAccepted:" + endpoint);
            SocketAdapter adapter = args.Adapter;

            _sockets.RemoveAll(_ => _.Adapter == null);
            _sockets.Add(new DownloadSocketManager(adapter));
        }
Beispiel #15
0
 public void Dispose()
 {
     _disposeEvent.Set();
     (_download as IOnlinePlayback)?.SetPriority(false);
     if (Adapter != null)
     {
         Adapter.ErrorOccured     -= onErrorOccured;
         Adapter.Closed           -= onClosed;
         Adapter.ReceiveCompleted -= onReceiveCompleted;
     }
     Adapter = null;
     OnlineDownloadsManager.Instance.DownloadInfoPartChanged -= onDownloadInfoPartChanged;
 }
Beispiel #16
0
        private void Server_ClientAccepted(object sender, ClientAcceptedEventArgs args)
        {
            string endpoint = args.Adapter.RemoteEndPoint.ToString();

            Common.Log.Logger.Default.Trace("ClientAccepted:" + endpoint);
            SocketAdapter adapter = args.Adapter;

            lock (_sockets)
            {
                _sockets.RemoveAll(_ => _.Adapter == null);
                var socket = new SocketListener(adapter, $"监听端口:{_port}.");
                _sockets.Add(socket);
            }
        }
        static void Main(string[] args)
        {
            //1:类适配器
            ISocket socket = new SocketAdapter();

            socket.GetElectric();

            //2:对象适配器
            BaseSocket baseSocket = new ChinaSocketAdpter();

            baseSocket.GetElectric();

            Console.Read();
        }
Beispiel #18
0
        private void startButton_Click(object sender, EventArgs e)
        {
            Thread.CurrentThread.Name = "Main Thread";
            if (_session != null)
            {
                _socket.Disconnect();
                _socket = null;
            }

            var adapter = new SocketAdapter();

            _socket  = new SymSocket(adapter, "symitar", 23);
            _session = new SymSession(_socket, 670);
            Login();
        }
Beispiel #19
0
        public void WidcommMruxxB8()
        {
            byte[] requests          = SimplePut1_ExpectedRequests_WidcommMru0FB8;
            byte[] expectedResponses = SimplePut1_Responses;
            //
            MemoryStream peerRequests_ = new MemoryStream(requests, false);
            Stream       peerRequests  = ModifyReadStream(peerRequests_);
            MemoryStream ourResponses  = new MemoryStream();
            TwoWayStream peer          = new TwoWayStream(peerRequests, ourResponses);
            //
            SocketAdapter       s   = CreateSocketAdapter(peer);
            ObexListenerContext ctx = new ObexListenerContext(s);

            //
            Assert.AreEqual(expectedResponses, ourResponses.ToArray(), "ourResponses");
        }
Beispiel #20
0
        private void Adapter_ReceiveCompleted(object sender, ReceiveEventArgs args)
        {
            if (args.ByteLength > 0)
            {
                SocketAdapter adapter = sender as SocketAdapter;
                using (MemoryStream ms = new MemoryStream(args.ReceivedBytes))
                {
                    int    code   = PacketBase.ReadInt(ms);
                    byte[] buffer = null;
                    switch ((ParamCode)code)
                    {
                    case ParamCode.TimePeriods:
                        buffer = getVideoTimePeriodsPacketBuffer(VideoBaseInfomParam.Decode(ms));
                        break;

                    case ParamCode.VideoPacket:
                        buffer = getVideoPacketBuffer(VideoDataParam.Decode(ms));
                        break;

                    case ParamCode.VideoBaseInfo:
                        VideoBaseInfomParam param = VideoBaseInfomParam.Decode(ms);
                        Common.Log.Logger.Default.Trace($"下载视频:{param.BeginTime} - {param.EndTime} - {param.VideoName} - {param.VideoId} - {param.StreamId} -- {adapter.RemoteEndPoint}");
                        _isDownload = true;
                        buffer      = getVideoBasePacketBuffer(param);
                        break;

                    case ParamCode.StorageFlag:
                        onStorageFlag(StorageFlagParam.Decode(ms));
                        break;

                    case ParamCode.StorageFlagAll:
                        buffer = getStorageFlagAll();
                        Console.WriteLine("StorageFlagAll: {0}", buffer.Length);
                        break;
                    }
                    if (buffer != null)
                    {
                        adapter.Send(code, buffer);
                    }
                }
            }
        }
Beispiel #21
0
 static public bool connectTcp(string address, int port)
 {
     if (socketAdapter == null)
     {
         socketAdapter = new SocketAdapter();
     }
     socketAdapter.setRecieveHandler(fileManager);
     if (socketAdapter.connect(address, port, 0))
     {
         socketAdapterThread              = new Thread(new ThreadStart(socketAdapter.worker));
         socketAdapterThread.Name         = "Clients socketAdapterThread";
         socketAdapterThread.IsBackground = true;
         socketAdapterThread.Start();
         return(true);
     }
     else
     {
         return(false);
     }
 }
Beispiel #22
0
 public void startSubClasses()
 {
     if (socketAdapter == null)
     {
         socketAdapter = new SocketAdapter();
     }
     if (nodeData == null)
     {
         nodeData = new NodeData("startupPath");
     }
     if (fileManager == null)
     {
         fileManager = new Apx.FileManager();
     }
     if (externalMsgs != null)
     {
         nodeData.setExternalQueue(externalMsgs);
     }
     fileManager.attachNodeData(nodeData);
     fileManager.start();
 }
Beispiel #23
0
 public ISocket AddSocket(SocketType socketType, string endPoint, bool isBind, string name, string identity = "", int dataLength = 4)
 {
     try
     {
         SocketAdapter socket = new SocketAdapter(GetSocketType(socketType), endPoint, isBind, identity, dataLength);
         socket.SetZmqname(name);
         _poller.Add(socket._socket);
         if (_socketDictionary.ContainsKey(name))
         {
             _socketDictionary.TryUpdate(name, socket, socket);
         }
         else
         {
             _socketDictionary.TryAdd(name, socket);
         }
         return(socket);
     }
     catch (Exception ex)
     {
         throw new NotImplementedException($"AddSocket: EndPoint: {endPoint} ---> {ex.Message}\r\n{ex.StackTrace}\r\n{ex.Source}");
     }
 }
Beispiel #24
0
        private ObexListenerContext DoTest(byte[] requests, byte[] expectedResponses,
                                           bool expectError, out Exception resultException)
        {
            MemoryStream peerRequests_ = new MemoryStream(requests, false);
            Stream       peerRequests  = ModifyReadStream(peerRequests_);
            MemoryStream ourResponses  = new MemoryStream();
            TwoWayStream peer          = new TwoWayStream(peerRequests, ourResponses);
            //
            SocketAdapter       s = CreateSocketAdapter(peer);
            ObexListenerContext ctx;

            try {
                ctx             = new ObexListenerContext(s);
                resultException = null;
            } catch (Exception ex) {
                // If test error expected we DO want to check that the
                // response packets are correct.  Otherwise just fail.
                if (expectError)
                {
                    resultException = ex;
                    ctx             = null;
                }
                else
                {
                    // Unexpected!
                    throw;
                }
            }
            //
            Assert.AreEqual(expectedResponses, ourResponses.ToArray(), "ourResponses");
            if (resultException != null)
            {
                Debug.Assert(ctx == null);
            }
            return(ctx);
        }
 private ConnectionPool(string host, int port) : this(() => SocketAdapter.Open(host, port, DefaultConnectTimeout))
 {
 }
 private ConnectionPool(IPAddress address, int port) : this(() => SocketAdapter.Open(address, port, DefaultConnectTimeout))
 {
 }
Beispiel #27
0
 public NetPipe(SocketAdapter adapter)
 {
     _id      = Guid.NewGuid().ToString();
     _adapter = adapter;
     installEvent();
 }
Beispiel #28
0
 private ConnectionPool(IPEndPoint endpoint) : this(() => SocketAdapter.Open(endpoint, DefaultConnectTimeout))
 {
 }
Beispiel #29
0
 private void removeEvent(SocketAdapter adapter)
 {
     adapter.ErrorOccured     -= Adapter_ErrorOccured;
     adapter.Closed           -= Adapter_Closed;
     adapter.ReceiveCompleted -= Adapter_ReceiveCompleted;
 }
 public ClientAcceptedEventArgs(SocketAdapter adapter)
 {
     _adapter = adapter;
 }
 /// <summary>
 /// Instantiate the adapter.
 /// </summary>
 /// <returns></returns>
 protected override BindingElement CreateBindingElement()
 {
     SocketAdapter adapter = new SocketAdapter();
     this.ApplyConfiguration(adapter);
     return adapter;
 }
Beispiel #32
0
        internal ObexListenerContext(SocketAdapter s)
        {
            buffer = new byte[0x2000];

            this.localEndPoint  = s.LocalEndPoint;
            this.remoteEndPoint = s.RemoteEndPoint;

            bool moretoreceive = true;
            bool putCompleted  = false;

            while (moretoreceive)
            {
                //receive the request and store the data for the request object
                int received = 0;

                try {
                    while (received < 3)
                    {
                        int readLen = s.Receive(buffer, received, 3 - received, SocketFlags.None);
                        if (readLen == 0)
                        {
                            moretoreceive = false;
                            if (received == 0)
                            {
                                break; // Waiting for first byte of packet -- OK to close then.
                            }
                            else
                            {
                                throw new EndOfStreamException("Connection lost.");
                            }
                        }
                        received += readLen;
                    }
                    //Debug.WriteLine(s.GetHashCode().ToString("X8") + ": RecvH", "ObexListener");
                } catch (SocketException se) {
                    //Console.Write(se.Message);
                    HandleConnectionError(se);
                }

                if (received == 3)
                {
                    ObexMethod method = (ObexMethod)buffer[0];
                    //get length (excluding the 3 byte header)
                    short len = (short)(IPAddress.NetworkToHostOrder(BitConverter.ToInt16(buffer, 1)) - 3);
                    if (len > 0)
                    {
                        int iPos = 0;

                        while (iPos < len)
                        {
                            int wanted = len - iPos;
                            Debug.Assert(wanted > 0, "NOT wanted > 0, is: " + wanted);
                            int receivedBytes = s.Receive(this.buffer, iPos + 3, wanted, SocketFlags.None);
                            if (receivedBytes == 0)
                            {
                                moretoreceive = false;
                                throw new EndOfStreamException("Connection lost.");
                            }
                            iPos += receivedBytes;
                        }
                    }

                    byte[] responsePacket; // Don't init, then the compiler will check that it's set below.

                    //Debug.WriteLine(s.GetHashCode().ToString("X8") + ": Method: " + method, "ObexListener");
                    responsePacket = HandleAndMakeResponse(ref moretoreceive, ref putCompleted, method);

                    try {
                        System.Diagnostics.Debug.Assert(responsePacket != null, "Must always respond to the peer.");
                        if (responsePacket != null)
                        {
                            s.Send(responsePacket);
                        }
                    } catch (Exception se) {
                        //Console.WriteLine(se.Message);
                        HandleConnectionError(se);
                    }
                }
                else
                {
                    moretoreceive = false;
                }
            }//while

            Debug.WriteLine(s.GetHashCode().ToString("X8") + ": Completed", "ObexListener");
            s.Close();
            s = null;

            if (!putCompleted)
            {
                // Should not return the request.
                throw new ProtocolViolationException("No PutFinal received.");
            }
            request = new ObexListenerRequest(bodyStream.ToArray(), headers, localEndPoint, remoteEndPoint);
        }