14 Star 54 Fork 31

NtripShare/NtripShareBase

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
ClientMetadata.cs 2.70 KB
一键复制 编辑 原始数据 按行查看 历史
NtripShare 提交于 4年前 . 初始版本
using System;
using System.IO;
using System.Net.Security;
using System.Net.Sockets;
using System.Threading;
namespace WatsonTcp
{
internal class ClientMetadata : IDisposable
{
internal TcpClient TcpClient
{
get
{
return _TcpClient;
}
}
internal NetworkStream NetworkStream
{
get
{
return _NetworkStream;
}
set
{
_NetworkStream = value;
if (_NetworkStream != null)
{
_DataStream = _NetworkStream;
}
}
}
internal SslStream SslStream
{
get
{
return _SslStream;
}
set
{
_SslStream = value;
if (_SslStream != null)
{
_DataStream = _SslStream;
}
}
}
internal Stream DataStream
{
get
{
return _DataStream;
}
}
internal string IpPort
{
get
{
return _IpPort;
}
}
internal CancellationTokenSource TokenSource = new CancellationTokenSource();
internal CancellationToken Token;
private TcpClient _TcpClient = null;
private NetworkStream _NetworkStream = null;
private SslStream _SslStream = null;
private Stream _DataStream = null;
private string _IpPort = null;
internal ClientMetadata(TcpClient tcp)
{
if (tcp == null) throw new ArgumentNullException(nameof(tcp));
_TcpClient = tcp;
_IpPort = tcp.Client.RemoteEndPoint.ToString();
NetworkStream = tcp.GetStream();
Token = TokenSource.Token;
}
/// <summary>
/// Tear down the object and dispose of resources.
/// </summary>
public void Dispose()
{
if (_SslStream != null)
{
_SslStream.Close();
}
if (_NetworkStream != null)
{
_NetworkStream.Close();
}
if (TokenSource != null)
{
if (!TokenSource.IsCancellationRequested) TokenSource.Cancel();
TokenSource.Dispose();
TokenSource = null;
}
if (_TcpClient != null)
{
_TcpClient.Close();
_TcpClient.Dispose();
}
}
}
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
C#
1
https://gitee.com/ntripshare/ntrip-share-base.git
git@gitee.com:ntripshare/ntrip-share-base.git
ntripshare
ntrip-share-base
NtripShareBase
master

搜索帮助