ネットワークのライブラリ

今日もリファクタリング。

ネットワーク周りのライブラリで、接続が確立していないソケットをプログラマが取得できないようにしてみた。

Sock.Connection connection = Sock.Connection.Connect( address );
if( connection == null ) 失敗;
connection.Send( data );

という感じだろうか。この Connect() という static メソッドしか Connection クラス(接続を扱うクラス)を生成できないわけですよ。つまり、接続の確立していないクラスは基本的にインスタンスがもらえないから Send() すら出来ない感じ。

.NET Framework って接続してないソケットにデータ送信とか簡単にできるから、コーディングみすったりするんだよなあ。

Acceptorクラス(リッスンソケットを扱うクラス)も同じように、ポート待ち受けが成功した場合のインスタンスしかプログラマが触れないようにした。