• R/O
  • HTTP
  • SSH
  • HTTPS

Commit

Frequently used words (click to add to your profile)

javaandroidc++linuxc#objective-ccocoa誰得qtrubypythonwindowsphpgamebathyscapheguic翻訳omegattwitterframeworkbtronvb.net計画中(planning stage)testdomarduinodirectxpreviewerゲームエンジン

ソケットを使ってクライアントサーバプログラムを作成するための C# ライブラリ


Commit MetaInfo

Révision001172537ca16a3fde3f655a4fcd1125c9f2e700 (tree)
l'heure2015-08-23 11:55:34
Auteurtsntsumi <tsntsumi@tsnt...>
Commitertsntsumi

Message de Log

UdpServerにIDisposableインタフェースの実装を追加

UdpClient オブジェクトを破棄するための実装を追加した。

Change Summary

Modification

--- a/src/SocketNet/SocketNet/UdpServer.cs
+++ b/src/SocketNet/SocketNet/UdpServer.cs
@@ -26,6 +26,7 @@
2626 /// @since 2015.8.15
2727 using System;
2828 using System.Collections.Generic;
29+using System.Threading.Tasks;
2930 using System.Net;
3031 using System.Net.Sockets;
3132
@@ -34,12 +35,14 @@ namespace SocketNet
3435 /// <summary>
3536 /// UDP サーバ。
3637 /// </summary>
37- public abstract class UdpServer
38+ public abstract class UdpServer: IDisposable
3839 {
3940 protected UdpClient udpClient;
4041
4142 protected volatile bool acceptingConnections;
4243
44+ private bool disposed = false;
45+
4346 /// <summary>
4447 /// データを受信したときに発行されます。
4548 /// </summary>
@@ -127,9 +130,41 @@ namespace SocketNet
127130 }
128131
129132 /// <summary>
133+ /// オブジェクトに関連付けられたリソースを解放します。
134+ /// </summary>
135+ public void Dispose()
136+ {
137+ Dispose(true);
138+ GC.SuppressFinalize(this);
139+ }
140+
141+ /// <summary>
142+ /// オブジェクトに関連付けられたリソースを解放します。
143+ /// </summary>
144+ /// <param name="disposing">
145+ /// メソッドの呼び出し元が Dispose() メソッドか (値は <c>true</c>)、
146+ /// それともファイナライザーか (値は <c>false</c>) を示します。
147+ /// </param>
148+ private void Dispose(bool disposing)
149+ {
150+ if (disposed)
151+ {
152+ return;
153+ }
154+
155+ if (disposing)
156+ {
157+ Stop();
158+ udpClient = null;
159+ }
160+
161+ disposed = true;
162+ }
163+
164+ /// <summary>
130165 /// Udpサーバを開始してデータ受信を開始します。
131166 /// </summary>
132- public async void Start()
167+ public async Task Start()
133168 {
134169 IPEndPoint ipEndPoint = new IPEndPoint(IPAddress, Port);
135170