Skip to content

Class P2pClientAsync

Namespace: Tool.Sockets.P2PHelpr
Assembly: Tool.Net.dll

封装一个可用的P2P打洞实现 帮助实现P2P打洞

csharp
public static class P2pClientAsync

Inheritance

objectP2pClientAsync

Inherited Members

object.Equals(object?), object.Equals(object?, object?), object.GetHashCode(), object.GetType(), object.MemberwiseClone(), object.ReferenceEquals(object?, object?), object.ToString()

Extension Methods

ObjectExtension.Add<T>(object, object, object), ObjectExtension.CopyEntity(object, object, params string[]), ObjectExtension.EntityToJson(object), ObjectExtension.EntityToJson(object, bool), ObjectExtension.EntityToJson(object, bool, string), DictionaryExtension.GetDictionary(object), TypeExtension.GetFieldKey(object, string, out bool), TypeExtension.GetFieldKey<T>(object, string, out bool), TypeExtension.GetFieldKey(object, Type, string, out bool), ObjectExtension.GetIntPtr(object), ObjectExtension.GetIntPtrInt(object), TypeExtension.GetPropertieFind(object, string, bool), TypeExtension.GetProperties(object), TypeExtension.GetPropertyKey(object, string, out bool), TypeExtension.GetPropertyKey<T>(object, string, out bool), TypeExtension.GetPropertyKey(object, Type, string, out bool), TypeExtension.GetValue(object, PropertyDescriptor), TypeExtension.GetValue(object, string, bool), TypeExtension.GetValue(object, string), ObjectExtension.Read<T>(object, object, int, int), ObjectExtension.Read<T>(object, int, object, int, int), DictionaryExtension.SetDictionary(object, IDictionary<string, object>), TypeExtension.SetFieldKey(object, string, object), TypeExtension.SetFieldKey<T>(object, string, object), TypeExtension.SetFieldKey(object, Type, string, object), TypeExtension.SetPropertyKey(object, string, object), TypeExtension.SetPropertyKey<T>(object, string, object), TypeExtension.SetPropertyKey(object, Type, string, object), TypeExtension.SetValue(object, PropertyDescriptor, object), TypeExtension.SetValue(object, string, object, bool), TypeExtension.SetValue(object, string, object), ObjectExtension.ToBase64String(object), ObjectExtension.ToBytes(object), ObjectExtension.ToBytes(object, out Type), DictionaryExtension.ToDictionary(object), DictionaryExtension.ToDictionary<T>(object), DictionaryExtension.ToIDictionary(object), DictionaryExtension.ToIDictionary<T>(object), ObjectExtension.ToJson(object), ObjectExtension.ToJson(object, JsonSerializerOptions), ObjectExtension.ToJsonWeb(object), ObjectExtension.ToJsonWeb(object, Action<JsonSerializerOptions>), ObjectExtension.ToTryVar<T>(object, T), ObjectExtension.ToVar<T>(object), ObjectExtension.ToVar(object, Type, bool), ObjectExtension.ToVar(object, string), ObjectExtension.ToXml(object)

Remarks

代码由逆血提供支持

Methods

P2PConnectAsync(TcpClientAsync, Ipv4Port, Ipv4Port, int)

尝试使用TCP模式进行P2P

csharp
public static Task P2PConnectAsync(this TcpClientAsync tcpClient, Ipv4Port localEP, Ipv4Port RemoteEP, int TimedDelay = 5000)

Parameters

tcpClient TcpClientAsync

调起方

localEP Ipv4Port

尝试绑定的IP端口

RemoteEP Ipv4Port

尝试连接的IP端口

TimedDelay int

P2P超时等待时长(默认5秒)

Returns

Task

任务

P2PConnectAsync(UdpClientAsync, Ipv4Port, Ipv4Port, int)

尝试使用UDP模式进行P2P

csharp
public static Task P2PConnectAsync(this UdpClientAsync udpClient, Ipv4Port localEP, Ipv4Port RemoteEP, int TimedDelay = 5000)

Parameters

udpClient UdpClientAsync

调起方

localEP Ipv4Port

尝试绑定的IP端口

RemoteEP Ipv4Port

尝试连接的IP端口

TimedDelay int

P2P超时等待时长(默认5秒)

Returns

Task

任务

基于Apache-2.0协议开源