本文整理汇总了C#中AtomCollection.SetHostUphostIP方法的典型用法代码示例。如果您正苦于以下问题:C# AtomCollection.SetHostUphostIP方法的具体用法?C# AtomCollection.SetHostUphostIP怎么用?C# AtomCollection.SetHostUphostIP使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类AtomCollection
的用法示例。
在下文中一共展示了AtomCollection.SetHostUphostIP方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: CreateHostPacket
/// <summary>
/// 現在のチャンネルとPeerCastの状態からHostパケットを作ります
/// </summary>
/// <returns>作ったPCP_HOSTパケット</returns>
private Atom CreateHostPacket()
{
var host = new AtomCollection();
host.SetHostChannelID(Channel.ChannelID);
host.SetHostSessionID(PeerCast.SessionID);
var globalendpoint =
PeerCast.GetGlobalEndPoint(
RemoteEndPoint.AddressFamily,
OutputStreamType.Relay);
if (globalendpoint!=null) {
host.AddHostIP(globalendpoint.Address);
host.AddHostPort(globalendpoint.Port);
}
var localendpoint =
PeerCast.GetLocalEndPoint(
RemoteEndPoint.AddressFamily,
OutputStreamType.Relay);
if (localendpoint!=null) {
host.AddHostIP(localendpoint.Address);
host.AddHostPort(localendpoint.Port);
}
host.SetHostNumListeners(Channel.LocalDirects);
host.SetHostNumRelays(Channel.LocalRelays);
host.SetHostUptime(Channel.Uptime);
if (Channel.Contents.Count > 0) {
host.SetHostOldPos((uint)(Channel.Contents.Oldest.Position & 0xFFFFFFFFU));
host.SetHostNewPos((uint)(Channel.Contents.Newest.Position & 0xFFFFFFFFU));
}
PCPVersion.SetHostVersion(host);
host.SetHostFlags1(
(PeerCast.AccessController.IsChannelRelayable(Channel) ? PCPHostFlags1.Relay : 0) |
(PeerCast.AccessController.IsChannelPlayable(Channel) ? PCPHostFlags1.Direct : 0) |
((!PeerCast.IsFirewalled.HasValue || PeerCast.IsFirewalled.Value) ? PCPHostFlags1.Firewalled : 0) |
(RecvRate>0 ? PCPHostFlags1.Receiving : 0));
host.SetHostUphostIP(RemoteEndPoint.Address);
host.SetHostUphostPort(RemoteEndPoint.Port);
return new Atom(Atom.PCP_HOST, host);
}