ClientSocketの使い方
ClientSocketコンポーネントは、Windows Socketを使ったTCP/IPクライアントアプリケーションを作るのに使用します。
サーバに接続するには
例
Statusbar1.Panels[0].Text := 'Connected to: ' + Socket.RemoteHost;
ソケットによる読み書きを行うには
非ブロッキング接続
非ブロッキング接続では、ソケットを通しての読み書きはアプリケーションの実行とは非同期に行われます。アプリケーションは、OnRead、OnWriteイベントハンドラで応答します。つぎの例は\Delphi3\DemosにあるChatの一部で、OnReadイベントでSocketオブジェクトのReceiveTextから受信テキストを読み取る例です。テキストを送るには、ClientSocket.Socket.SendTextメソッドを使用します。
例
procedure TChatForm.ClientSocketRead(Sender: TObject; Socket: TCustomWinSocket); begin Memo2.Lines.Add(Socket.ReceiveText); end;
ブロッキング接続
ブロッキング接続では、アプリケーションはソケットの読み書きが完了するのを待ってから、次の処理を行います。したがって、アプリケーションはその間、何の処理もできないことになります。何かの処理が必要なら読み書き用のスレッドを用意する必要があります。
接続を閉じるには
Closeメソッドによって接続を閉じることができます。このとき、OnDisconnectイベントが発生します。
ClientSocketのサンプル
\Delphi3\Demos\Internet\Chatにあります。