横から失礼します。
TServerSocket(dclsocketsXXX.bpl)を使う場合の注意事項を補足します。
1.booさんの最初の書き込みのとおり、TServerSocketおよびTClinetSocketで
送受信を行うときはコンポーネントではなくイベントハンドラの引数で
渡されるSocket(TCustomWinSocket)を使う。これはそもそもそういうもの
だったはずです(ヘルプに明記されていたはず)。
2.いまどきのマルチプロセッサ環境ではなるべくIndy(TIdTCPServer)を使う。
これは公式に聞いた話ではなくまた聞きなのですが、Borland(当時)の
有償サポートに問い合わせたところTServerSocketはSMP環境では
正常に動作しないことがあり、そのため最近のDelphiでは標準で
IDEに組み込まれていないのだ、という話でした。
なおTIdTCPServerのOnExecuteイベントはUIとは別のスレッドで呼び出されるので
UI操作をするときはTThread.Synchronizeを使う必要があります(先日これに
はまった)。
|