.NET Framework のSocketを利用する - Delphi

SocketについてはIndy以外の古いコンポーネントを使っていた場合、.NETでは、修正が必要になります。ここでは、Indyではなくて、.NET Frameworkのソケットを使って簡単な動きを確認してみます。


追加するユニットは上記のとおりです。 System.Net.Sockets が必要になります。system.Text もいります。 .NET Frameworkでは TCPClient というクラスが TClientSocket / TTCPClientと同じことができるものになっているようです。読み書きは、すべて NetworkStream という TStream とよく似たクラスを使って行います。 下のコードは、www.ipentec.com の ポート80にアクセスして GET index.html をする簡単なプログラムです。いい加減なアクセス方法なので、BAD Request のHTMLが戻ってくると成功したということになります。

Sock は上のほうで Sock:TCPClient と定義してあります。 37ラインでsocketを作成しています。 38ラインで接続します。Delphiのコンポーネントとは違い、接続時にホストとポートを指定します。 そしてネットワークストリームを取得します。 あとは NS.Write / NS.Read などのメソッドを用いて、ソケットにデータを書き込みます。

実行例はこんな感じで、Bad Request が戻ってきます。 いくつかの違いがありますが、.NET Framework のソケットは、TTCPClientや TClientSocket と同じように使えるところもありますので、.NETにターゲットを絞るのならば、.NET Frameworkのソケットを使って移植するのもいいかもしれません。


著者
iPentecのメインプログラマー
C#, ASP.NET の開発がメイン、少し前まではDelphiを愛用
最終更新日: 2018-02-01
作成日: 2004-01-29
iPentec all rights reserverd.