123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- using System.Data.Odbc;
- namespace TLVProtocal.SubLayers;
- internal class SingleConnectLayer : BaseFilter
- {
- private TcpConnection _currentConnection;
- public override void Connected(Connection connection)
- {
- if (connection is not TcpConnection tcpConnection)
- return;
- this._currentConnection ??= tcpConnection;
- base.Connected(connection);
- }
- public override void Disconnected(Connection connection)
- {
- this._currentConnection = null;
- base.Disconnected(connection);
- }
- public override bool Send(Data data)
- {
- if (this._currentConnection == null)
- return false;
- if (data.Connection is not TcpConnection tcpConnection)
- return false;
- if (this._currentConnection.RemoteEndPoint != tcpConnection.RemoteEndPoint)
- return false;
- return base.Send(data);
- }
- public override bool Receive(Data data)
- {
- if (this._currentConnection == null)
- return false;
- if (data.Connection is not TcpConnection tcpConnection)
- return false;
- if (this._currentConnection.RemoteEndPoint != tcpConnection.RemoteEndPoint)
- return false;
- return base.Receive(data);
- }
- }
|