このリポジトリは、Valve Software によって作成および維持される GameNetworkingSockets ライブラリのマネージド C# 抽象化を提供します。開始する前に、必要な依存関係をすべて備えたネイティブ ライブラリを構築する必要があります。
プロジェクトはネイティブ ライブラリのリリースに合わせて更新されます。
マネージド アセンブリは、C# 3.0 以降をサポートする利用可能なコンパイル プラットフォームを使用してビルドできます。
VALVESOCKETS_SPAN
を定義して、Span のサポートを有効にします。ネイティブ メモリ ブロックへの高速アクセスを有効にしてパフォーマンスを向上させるには、次の手順に従ってください。
作業を開始する前に、 Valve.Sockets.Library.Initialize();
関数。
作業が完了したら、 Valve.Sockets.Library.Deinitialize();
を使用してライブラリの初期化を解除します。関数。
NetworkingSockets サーバー = new NetworkingSockets();uint pollGroup = server.CreatePollGroup();StatusCallback status = (ref StatusInfo info) => {switch (info.connectionInfo.state) {case ConnectionState.None:break;case ConnectionState.Connecting:server .AcceptConnection(info.connection);server.SetConnectionPollGroup(pollGroup, info.connection);break;case ConnectionState.Connected:Console.WriteLine("クライアント接続 - ID: " + info.connection + ", IP: " + info.connectionInfo.address.GetIP());break;case ConnectionState。 ClosedByPeer:case ConnectionState.ProblemDetectedLocally:server.CloseConnection(info.connection);Console.WriteLine("クライアントが切断されました - ID: " + info.connection + "、IP: " + info.connectionInfo.address.GetIP());break;}};utils.SetStatusCallback(status);Address address = new Address();address.SetAddress("::0", port);uint listenSocket = サーバー.CreateListenSocket(ref address);#if VALVESOCKETS_SPANMessageCallback message = (NetworkingMessage netMessage 内) => {Console.WriteLine("Message受信元 - ID: " + netMessage.connection + "、チャネル ID: " + netMessage.channel + "、データ長: " + netMessage.length);};#else const int maxMessages = 20;NetworkingMessage[] netMessages = new NetworkingMessage[maxMessages];#endifwhile (!Console.KeyAvailable) {server.RunCallbacks(); #if VALVESOCKETS_SPANserver.ReceiveMessagesOnPollGroup(pollGroup, message, 20); #else int netMessagesCount = server.ReceiveMessagesOnPollGroup(pollGroup, netMessages, maxMessages);if (netMessagesCount > 0) {for (int i = 0; i < netMessagesCount; i++) {ref NetworkingMessage netMessage = ref netMessages[i];Console.WriteLine (「メッセージを受信しました - ID: " + netMessage.connection + "、チャネル ID: " + netMessage.channel + ", データ長: " + netMessage.length);netMessage.Destroy();}} #endif Thread.Sleep(15);}server.DestroyPollGroup(pollGroup);
NetworkingSockets client = new NetworkingSockets();uint connection = 0;StatusCallback status = (ref StatusInfo info) => {switch (info.connectionInfo.state) {case ConnectionState.None:break;case ConnectionState.Connected:Console.WriteLine("クライアントがサーバーに接続 - ID: " + connection);break;case ConnectionState.ClosedByPeer:case ConnectionState.問題検出ローカル:client.CloseConnection(接続);Console.WriteLine("クライアントがサーバーから切断されました");break;}};utils.SetStatusCallback(ステータス);アドレス アドレス = 新しいアドレス();アドレス.SetAddress(":: 1", port);connection = client.Connect(ref address);#if VALVESOCKETS_SPANMessageCallback message = (NetworkingMessage netMessage 内) => {Console.WriteLine("サーバーから受信したメッセージ - チャネル ID: " + netMessage.channel + ", データ長: " + netMessage.length);};#else const int maxMessages = 20;NetworkingMessage[] netMessages = new NetworkingMessage[ maxMessages];#endifwhile (!Console.KeyAvailable) {client.RunCallbacks(); #if VALVESOCKETS_SPANclient.ReceiveMessagesOnConnection(接続, メッセージ, 20); #else int netMessagesCount = client.ReceiveMessagesOnConnection(connection, netMessages, maxMessages);if (netMessagesCount > 0) {for (int i = 0; i < netMessagesCount; i++) {ref NetworkingMessage netMessage = ref netMessages[i];Console.WriteLine ("サーバーから受信したメッセージ - チャネルID: " + netMessage.channel + "、データ長: " + netMessage.length);netMessage.Destroy();}} #endif Thread.Sleep(15);}
byte[] data = new byte[64];sockets.SendMessageToConnection(接続, データ);
byte[] バッファ = 新しいバイト[1024];netMessage.CopyTo(buffer);
DebugCallback debug = (type, message) => {Console.WriteLine("Debug - Type: " + type + ", Message: " + message);};NetworkingUtils utils = new NetworkingUtils();utils.SetDebugCallback(DebugType.Everything) 、デバッグ);
使い方は.NET環境とほぼ同じですが、コンソールの機能をUnityが提供する機能に置き換える必要があります。 NetworkingSockets.RunCallbacks()
ゲーム ループで呼び出される場合は、プレーヤー設定で適切なオプションを有効にして、Unity をバックグラウンドで実行し続けます。
NetworkingSockets.SendMessageToConnection()
関数のフラグの定義:
SendFlags.Unreliable
信頼性が低く、メッセージの配信は保証されていません。メッセージは順序どおりに配信されない可能性があります。
SendFlags.Reliable
信頼できる順序で指定すると、メッセージはターゲット接続で受信され、メッセージが配信されるまで再送信を試行する必要があります。
SendFlags.NoNagle
メッセージはタイマー内で他のメッセージとグループ化されません。
SendFlags.NoDelay
比較的早く送信できないメッセージはバッファリングされません。
NetworkingIdentity
構造の ID タイプの定義:
IdentityType.Invalid
不明または無効です。
IdentityType.SteamID
Steam 識別子。
IdentityType.IPAddress
IPv4/IPv6 アドレス。
ConnectionInfo.state
フィールドの接続状態の定義:
ConnectionState.None
ダミー状態。接続が存在しないか、すでに閉じられています。
ConnectionState.Connecting
NetworkingSockets.Connect()
関数によって開始された接続の確立が進行中です。
ConnectionState.FindingRoute
サーバーが接続を受け入れると、この接続はランデブー状態に切り替わりますが、エンドツーエンドのルートはまだ確立されていません (中継ネットワーク経由)。
ConnectionState.Connected
NetworkingSockets.Connect()
関数によって開始された接続要求が完了しました。
ConnectionState.ClosedByPeer
接続はピアによって閉じられていますが、ローカルでは閉じられていません。受信キューにメッセージがある場合は、それらを取得できます。それ以外の場合は、 NetworkingSockets.CloseConnection()
関数を使用して接続を閉じる以外、接続に対して何も行うことができません。 API の観点から見ると接続はまだ存在しているため、リソースを解放するには接続を閉じる必要があります。
ConnectionState.ProblemDetectedLocally
ローカル接続の中断がローカルで検出されました。さらにメッセージを送信しようとすると失敗します。キュー内に残っている受信メッセージは利用可能です。 API の観点から見ると接続はまだ存在しているため、リソースを解放するには接続を閉じる必要があります。
構成スコープの定義:
ConfigurationScope.Global
ConfigurationScope.SocketsInterface
ConfigurationScope.ListenSocket
ConfigurationScope.Connection
構成データ型の定義:
ConfigurationDataType.Int32
ConfigurationDataType.Int64
ConfigurationDataType.Float
ConfigurationDataType.String
ConfigurationDataType.FunctionPtr
構成値の定義:
ConfigurationValue.Invalid
ConfigurationValue.FakePacketLossSend
ConfigurationValue.FakePacketLossRecv
ConfigurationValue.FakePacketLagSend
ConfigurationValue.FakePacketLagRecv
ConfigurationValue.FakePacketReorderSend
ConfigurationValue.FakePacketReorderRecv
ConfigurationValue.FakePacketReorderTime
ConfigurationValue.FakePacketDupSend
ConfigurationValue.FakePacketDupRecv
ConfigurationValue.FakePacketDupTimeMax
ConfigurationValue.TimeoutInitial
ConfigurationValue.TimeoutConnected
ConfigurationValue.SendBufferSize
ConfigurationValue.SendRateMin
ConfigurationValue.SendRateMax
ConfigurationValue.NagleTime
ConfigurationValue.IPAllowWithoutAuth
ConfigurationValue.MTUPacketSize
ConfigurationValue.MTUDataSize
ConfigurationValue.Unencrypted
ConfigurationValue.EnumerateDevVars
ConfigurationValue.SymmetricConnect
ConfigurationValue.LocalVirtualPort
ConfigurationValue.ConnectionStatusChanged
ConfigurationValue.AuthStatusChanged
ConfigurationValue.RelayNetworkStatusChanged
ConfigurationValue.MessagesSessionRequest
ConfigurationValue.MessagesSessionFailed
ConfigurationValue.P2PSTUNServerList
ConfigurationValue.P2PTransportICEEnable
ConfigurationValue.P2PTransportICEPenalty
ConfigurationValue.P2PTransportSDRPenalty
ConfigurationValue.SDRClientConsecutitivePingTimeoutsFailInitial
ConfigurationValue.SDRClientConsecutitivePingTimeoutsFail
ConfigurationValue.SDRClientMinPingsBeforePingAccurate
ConfigurationValue.SDRClientSingleSocket
ConfigurationValue.SDRClientForceRelayCluster
ConfigurationValue.SDRClientDebugTicketAddress
ConfigurationValue.SDRClientForceProxyAddr
ConfigurationValue.SDRClientFakeClusterPing
ConfigurationValue.LogLevelAckRTT
ConfigurationValue.LogLevelPacketDecode
ConfigurationValue.LogLevelMessage
ConfigurationValue.LogLevelPacketGaps
ConfigurationValue.LogLevelP2PRendezvous
ConfigurationValue.LogLevelSDRRelayPings
構成値の結果の定義:
ConfigurationValueResult.BadValue
ConfigurationValueResult.BadScopeObject
ConfigurationValueResult.BufferTooSmall
ConfigurationValueResult.OK
ConfigurationValueResult.OKInherited
デバッグ タイプの定義:
DebugType.None
DebugType.Bug
DebugType.Error
DebugType.Important
DebugType.Warning
DebugType.Message
DebugType.Verbose
DebugType.Debug
DebugType.Everything
演算結果の定義:
Result.OK
成功。
Result.Fail
一般的な失敗。
Result.NoConnection
でネットワーク接続に失敗しました。
Result.InvalidParam
パラメータが正しくありません。
Result.InvalidState
で呼び出されたオブジェクトは無効な状態でした。
Result.Ignored
ターゲットは送信者を無視しています。
ソケットごとのイベントを提供します。
StatusCallback(ref StatusInfo info)
リッスン ソケットのディスパッチ メカニズムが接続状態を返したときに通知します。デリゲートへの参照は、ガベージ コレクションから保護される必要があります。
アプリケーションごとのイベントを提供します。
DebugCallback(DebugType type, string message)
必要な詳細度のデバッグ情報が表示されたときに通知します。デリゲートへの参照は、ガベージ コレクションから保護される必要があります。
IP アドレスとポート番号を含むマーシャリングされたデータが含まれます。
Address.ip
バイト単位の IP アドレス。
Address.port
ポート ポート番号。
Address.IsLocalHost
ID が localhost であるかどうかを確認します。
Address.GetIP()
印刷可能な形式で IP アドレスを取得します。
Address.SetLocalHost(ushort port)
指定されたポートでローカルホストを設定します。
Address.SetAddress(string ip, ushort port)
指定されたポートで IP アドレス (IPv4/IPv6) を設定します。
Address.Equals(Address other)
アドレスが等しいかどうかを決定します。
構成を含むマーシャルされたデータが含まれます。
Configuration.value
ConfigurationValue
列挙で記述される値のタイプ。
Configuration.dataType
ConfigurationDataType
列挙で記述されるデータのタイプ。
Configuration.data
構成データの結合。
接続状態を含むマーシャリングされたデータが含まれます。
StatusInfo.connection
接続 ID。
StatusInfo.connectionInfo
本質的に、マーシャリングされたデータを含むConnectionInfo
構造体です。
接続情報を含むマーシャルされたデータが含まれます。
ConnectionInfo.identity
エンドポイントの識別子。
ConnectionInfo.userData
NetworkingSockets.SetConnectionUserData()
関数を使用して設定されるユーザー指定のデータ。
ConnectionInfo.listenSocket
この接続の待機ソケット。
ConnectionInfo.address
エンドポイントのリモート アドレス。
ConnectionInfo.state
ConnectionState
列挙で記述される接続の高レベルの状態。
ConnectionInfo.endReason
接続の終了または問題の基本的な原因。
ConnectionInfo.endDebug
接続の終了または問題に関する人間が判読できる形式での説明。これはデバッグ診断のみを目的としており、ユーザーに表示することを目的としたものではありません。問題に固有の詳細が含まれる場合があります。
ConnectionInfo.connectionDescription
デバッグの説明には、接続ハンドル、接続タイプ、ピア情報が含まれます。
頻繁なリクエストの接続ステータスを含むマーシャルされたデータが含まれます。
ConnectionStatus.state
ConnectionState
列挙で記述される接続の高レベルの状態。
ConnectionStatus.ping
現在の ping (ミリ秒単位)。
ConnectionStatus.connectionQualityLocal
ローカルで測定されたローカル接続品質(エンドツーエンドで順番に配信されたパケットの割合)。
ConnectionStatus.connectionQualityRemote
リモート ホストから観測されたリモート パケット配信成功率。
ConnectionStatus.outPacketsPerSecond
最近の履歴からの現在のアウトバウンド パケット レート。
ConnectionStatus.outBytesPerSecond
最近の履歴からの現在のアウトバウンド データ レート。
ConnectionStatus.inPacketsPerSecond
最近の履歴からの現在の受信パケット レート。
ConnectionStatus.inBytesPerSecond
最近の履歴からの現在の受信データ レート。
ConnectionStatus.sendRateBytesPerSecond
データをピアに送信できる推定速度。これは、 ConnectionStatus.outBytesPerSecond
よりも大幅に大きくなる可能性があります。これは、チャネルの容量が送信データよりも大きいことを意味します。
ConnectionStatus.pendingUnreliable
信頼性の低い送信が保留されているバイト数。これは、最近送信を要求されたものの、まだ実際には送信されていないデータです。
ConnectionStatus.pendingReliable
確実に送信されるよう保留中の信頼できるバイト数。信頼できる番号には、以前に回線上に置かれたが現在は再送信がスケジュールされているデータも含まれます。したがって、たとえチェック間に信頼できるデータを送信するための呼び出しが行われなかったとしても、2 つのチェック間でバイトの増加を観察することができます。 Nagle 遅延を待っているデータがこれらの数値に表示されます。
ConnectionStatus.sentUnackedReliable
ワイヤに配置されたものの、まだ確認応答を受信していないため、再送信が必要になる可能性がある信頼できるデータのバイト数。
ネットワーク ID のマーシャルされたデータが含まれます。
NetworkingIdentity.type
ネットワーク ID の説明。
NetworkingIdentity.IsInvalid
、ID のタイプが無効かどうかを確認します。
NetworkingIdentity.GetSteamID()
Steam ID を取得します。
NetworkingIdentity.SetSteamID(ulong steamID)
Steam ID を設定します。
ネットワーク メッセージのマーシャルされたデータが含まれます。
NetworkingMessage.identity
送信者の識別子。
NetworkingMessage.connectionUserData
NetworkingSockets.SetConnectionUserData()
関数を使用して設定されるユーザー指定の接続データ。
NetworkingMessage.timeReceived
メッセージ受信時のローカル タイムスタンプ。
NetworkingMessage.messageNumber
送信者によって割り当てられたメッセージ番号。
メッセージのNetworkingMessage.data
ペイロード。
NetworkingMessage.length
ペイロードの長さ。
NetworkingMessage.connection
メッセージの送信元の接続 ID。
NetworkingMessage.channel
メッセージが受信されたチャネル番号。
NetworkingMessage.flags
メッセージの送信に使用されたフラグ。
NetworkingMessage.CopyTo(byte[] destination)
ペイロードをメッセージから宛先配列にコピーします。
NetworkingMessage.Destroy()
メッセージを破棄します。メッセージがソケットから取得される場合にのみ呼び出す必要があります。
ソケットへのマネージド ポインタが含まれます。
NetworkingSockets.CreateListenSocket(ref Address address, Configuration[] configurations)
オプションの構成でソケットを作成し、 NetworkingSockets.Connect()
関数によって開始された受信接続をリッスンするソケット ID を返します。
NetworkingSockets.Connect(ref Address address, Configuration[] configurations)
オプションの構成を使用して外部ホストへの接続を開始します。ローカル接続 ID を返します。
NetworkingSockets.AcceptConnection(Connection connection)
リッスン ソケットで受信した受信接続を受け入れます。接続試行を受信すると (おそらく、簡単なスプーフィングを防ぐためにいくつかの基本的なハンドシェイク パケットが交換された後)、接続インターフェイス オブジェクトがConnectionState.Connecting
状態で作成され、 StatusCallback()
が呼び出されます。 Result
列挙に記述された結果を返します。
NetworkingSockets.CloseConnection(Connection connection, int reason, string debug, bool enableLinger)
ホストから切断し、接続ハンドルを無効にします。接続上の未読のデータはすべて破棄されます。 reason パラメータはオプションのユーザー指定のコードで、相手側で受信され、(可能な場合)バックエンド分析に記録されます。理由コードが許容範囲外の場合、デバッグ ログにエラーが示される場合があります。デバッグ パラメーターは、人間が判読できるオプションの診断文字列で、相手側で受信され、(可能な場合は) バックエンド分析に記録されます。ユーザーがソケットを残留状態にし、残りの送信データをフラッシュしようとする場合は、linger パラメータを有効にする必要があります。そうしないと、信頼できるデータはフラッシュされません。接続がすでに終了している場合、理由コード、デバッグ文字列、および linger パラメータは無視されます。成功した場合は true を返し、失敗した場合は false を返します。
NetworkingSockets.CloseListenSocket(ListenSocket socket, string remoteReason)
と、リッスン ソケットでの接続を受け入れることによって生成されたすべてのクライアント ソケットを破棄します。リモートの理由により、破棄されるクライアント ソケットに対してどのようなクリーンアップ アクションが実行されるかが決まります。クリーンアップが要求され、ユーザーが直接 IPv4 接続を容易にするために特定のローカル ポートにバインドされたリッスン ソケットを要求した場合、すべてのクライアントがクリーンアップされるまで、基礎となる UDP ソケットは開いたままにする必要があります。成功した場合は true を返し、失敗した場合は false を返します。
NetworkingSockets.SetConnectionUserData(Connection peer, long userData)
接続用にユーザーが指定したデータを設定します。成功した場合は true を返し、失敗した場合は false を返します。
NetworkingSockets.GetConnectionUserData(Connection peer)
ユーザー指定のデータを返すか、ハンドルが無効な場合、または接続にデータが設定されていない場合は -1 を返します。
NetworkingSockets.SetConnectionName(Connection peer, string name)
主にデバッグに使用される接続の名前を設定します。
NetworkingSockets.GetConnectionName(Connection peer, StringBuilder name, int maxLength)
接続名を可変文字列にフェッチします。成功した場合は true を返し、失敗した場合は false を返します。
NetworkingSockets.SendMessageToConnection(Connection connection, byte[] data, int length, SendFlags flags)
接続されたソケット上のホストにメッセージを送信します。長さと送信タイプのパラメータはオプションです。複数のフラグを一度に指定できます。 Result
列挙に記述された結果を返します。バイト配列への参照の代わりに、ネイティブ バッファへのポインタIntPtr
使用できます。
NetworkingSockets.FlushMessagesOnConnection(Connection connection)
Nagle が有効になっている場合 (デフォルトで有効になっています)、小さなメッセージを同じパケットにマージするために、メッセージは送信される前に Nagle 時間キューに入れられます。この関数を呼び出して、キューに入れられたメッセージをフラッシュし、次の送信時にすぐに送信します。 Result
列挙に記述された結果を返します。
NetworkingSockets.ReceiveMessagesOnConnection(Connection connection, NetworkingMessage[] messages, int maxMessages)
接続用のソケットから次に利用可能なメッセージをフェッチします。メッセージの数を返すか、接続ハンドルが無効な場合は -1 を返します。配列内で返されるメッセージの順序は重要です。信頼できるメッセージは、送信された順序で受信されます。メッセージが取得された場合は、それぞれのメッセージに対してmessage.Destroy()
を呼び出してリソースを解放する必要があります。
NetworkingSockets.GetConnectionInfo(Connection connection, ref ConnectionInfo info)
指定された接続に関する情報を取得します。成功した場合は true を返し、失敗した場合は false を返します。
NetworkingSockets.GetQuickConnectionStatus(Connection connection, ref ConnectionStatus status)
ゲーム内でユーザーに表示できる簡単な接続ステータスのセットを取得します。成功した場合は true を返し、失敗した場合は false を返します。
NetworkingSockets.GetDetailedConnectionStatus(Connection connection, StringBuilder status, int statusLength)
詳細な接続統計を印刷可能な形式で取得します。成功した場合は 0、失敗した場合は -1、または可変文字列の容量が十分でない場合は > 0 を返します。
NetworkingSockets.GetListenSocketAddress(ListenSocket socket, ref Address address)
リッスン ソケットのローカル IP とポート番号を取得します。成功した場合は true を返し、失敗した場合は false を返します。
NetworkingSockets.CreateSocketPair(Connection connectionLeft, Connection connectionRight, bool useNetworkLoopback, ref NetworkingIdentity identityLeft, ref NetworkingIdentity identityRight)
相互に通信する接続のペア (ループバック通信など) を作成します。 2 つの接続はすぐに接続状態になり、コールバックは呼び出されません。この後、どちらかの接続が閉じられると、もう一方の接続はネットワーク経由で通信しているかのようにコールバックを受け取ります。デフォルトでは、内部バッファが使用され、ネットワーク、メッセージのパケットへの分割、暗号化、ペイロードのコピーなどが完全にバイパスされます。これは、ループバック パケットがデフォルトで遅延や損失をシミュレートしないことを意味します。ネットワーク ループバック パラメータを有効にすると、ソケット ペアはエフェメラル ポート上のローカル ネットワーク ループバック デバイスを介してパケットを送信します。この場合、偽のラグと損失がサポートされ、暗号化と復号化に CPU 時間が費やされます。
NetworkingSockets.GetIdentity()
ソケットに関連付けられた ID を取得します。
NetworkingSockets.CreatePollGroup()
接続用の新しいポーリング グループを作成します。ポーリンググループハンドルを返します。
NetworkingSockets.DestroyPollGroup(PollGroup pollGroup)
ポーリング グループを破棄します。ポーリング グループに接続がある場合、その接続はグループから削除され、どのポーリング グループにも属さない状態のままになります。無効なポーリング グループ ハンドルが渡された場合は false を返します。
NetworkingSockets.SetConnectionPollGroup(PollGroup pollGroup, Connection connection)
接続をポーリング グループに割り当てます。接続は 1 つのポーリング グループにのみ属することができます。接続をポーリング グループに追加すると、その接続は他のポーリング グループから暗黙的に削除されます。ポーリング グループ パラメーターにゼロ値を渡すと、現在のポーリング グループから接続を削除できます。現在接続上で保留中の受信メッセージがある場合、その接続時にすでにポーリング グループの一部であった場合に適用される順序とほぼ同じ順序で、ポーリング グループのメッセージ キューにそれらのメッセージを追加しようとします。メッセージが受信されました。接続ハンドルが無効な場合、またはポーリング グループ ハンドルが無効な場合は false を返します。
NetworkingSockets.ReceiveMessagesOnPollGroup()
ポーリング グループ内の任意の接続上のソケットから次に利用可能なメッセージをフェッチします。 NetworkingMessage.connection
調べて接続を特定します。異なる接続間でのメッセージの配信順序は、通常、メッセージを完了した最後のパケットが受信された順序と一致します。ただし、これは、特に接続がポーリング グループに割り当てられているときに正しく受信されたパケットの場合、強力な保証ではありません。同じ接続上のメッセージの配信順序は明確に定義されており、同じ保証が存在します。メッセージは接続ごとにグループ化されていないため、リスト内に必ずしも連続して表示されるわけではなく、他の接続のメッセージが挟まれる可能性があります。メッセージの数を返すか、ポーリング グループ ハンドルが無効な場合は -1 を返します。
NetworkingSockets.RunCallbacks()
可能な場合はコールバックをディスパッチします。
NetworkingUtils.Dispose()
ネットワーク ユーティリティを破棄し、管理されていないリソースをクリーンアップします。
NetworkingUtils.Time
、現在のローカル単調時間をマイクロ秒単位で返します。アプリケーションが生きている間はリセットされません。
NetworkingUtils.FirstConfigurationValue
現在の環境で使用可能な最小番号の構成値を取得します。
NetworkingUtils.SetStatusCallback(StatusCallback callback)
接続ステータス更新のコールバックを設定します。成功した場合は true を返し、失敗した場合は false を返します。
NetworkingUtils.SetDebugCallback(DebugType detailLevel, DebugCallback callback)
デバッグ出力のコールバックを設定します。
NetworkingUtils.SetConfigurationValue(ConfigurationValue configurationValue, ConfigurationScope configurationScope, IntPtr scopeObject, ConfigurationDataType dataType, IntPtr value)
ConfigurationValue
、 ConfigurationScope
、およびConfigurationDataType
列挙に従って構成値を設定します。 value パラメータは実際の値への参照である必要があります。
NetworkingUtils.SetConfigurationValue(Configuration configuration, ConfigurationScope configurationScope, IntPtr scopeObject)
ConfigurationScope
列挙に従って、 Configuration
構造体を使用して構成を設定します。
NetworkingUtils.GetConfigurationValue(ConfigurationValue configurationValue, ConfigurationScope configurationScope, IntPtr scopeObject, ref ConfigurationDataType dataType, ref IntPtr result, ref IntPtr resultLength)
ConfigurationValue
、 ConfigurationScope
、およびConfigurationDataType
列挙に従って構成値を取得します。
定数フィールドが含まれます。
Library.maxCloseMessageLength
接続が閉じられたときの理由文字列の最大長 (バイト単位)。
Library.maxMessageSize
送信できる単一メッセージの最大サイズ。
Library.Initialize(ref NetworkingIdentity identity, StringBuilder errorMessage)
ソケットに関連付けられるオプションの ID を使用してネイティブ ライブラリを初期化します。エラー メッセージ パラメーターはオプションであり、初期化中にエラーを判断するために使用する必要があります。エラー メッセージの変更可能な文字列の容量は、 Library.maxErrorMessageLength
と等しくなければなりません。
Library.Deinitialize()
ネイティブ ライブラリを初期化解除します。作業が完了したら電話する必要があります。