喫茶XRAYトップページ

[スレッド全体
]

[6298] Re4:TServerSocketの使用方法について返信 削除
2012/8/26 (日) 10:14:06 snail3
> ▼ booさん

十年以上前、ソケット利用するプログラムを依頼してことがあります。
「できた」といって持ってきたプログラムは単独では動作するけど
負荷をかけるとボロボロ。再送などの処理を自分で組む必要が
あったように覚えています。



[6299] Re5:TServerSocketの使用方法について返信 削除
2012/8/26 (日) 18:01:31 Mr.XRAY
▼ snail3さん

> 負荷をかけるとボロボロ。再送などの処理を自分で組む必要が
> あったように覚えています。


う〜ん,難しいんでしょうか ?

[6302] Re6:TServerSocketの使用方法について返信 削除
2012/8/28 (火) 10:35:41 boo
Mr.XRAY様、snail3様

お返事ありがとうございます。
サイトもご紹介いただきありがとうございます。


snail3さんの仰る現象と同じで、単独ではまったく問題ないんですよね。
配列を使わない方法で思うように動いてくれているので、しばらく様子を見ます。


一人で悩んでおりましたので、皆様のお話が聞けただけで胸のモヤモヤが少し晴れました。
お付き合い頂き有難うございました。


[6303] Re7:TServerSocketの使用方法について返信 削除
2012/8/28 (火) 16:12:23 Mr.XRAY
▼ booさん

スミマセンね.お役に立たなくて.
健闘を祈っています.

[6304] Re7:TServerSocketの使用方法について返信 削除
2012/8/28 (火) 16:39:16 福士
横から失礼します。

TServerSocket(dclsocketsXXX.bpl)を使う場合の注意事項を補足します。

1.booさんの最初の書き込みのとおり、TServerSocketおよびTClinetSocketで
送受信を行うときはコンポーネントではなくイベントハンドラの引数で
渡されるSocket(TCustomWinSocket)を使う。これはそもそもそういうもの
だったはずです(ヘルプに明記されていたはず)。

2.いまどきのマルチプロセッサ環境ではなるべくIndy(TIdTCPServer)を使う。
これは公式に聞いた話ではなくまた聞きなのですが、Borland(当時)の
有償サポートに問い合わせたところTServerSocketはSMP環境では
正常に動作しないことがあり、そのため最近のDelphiでは標準で
IDEに組み込まれていないのだ、という話でした。
なおTIdTCPServerのOnExecuteイベントはUIとは別のスレッドで呼び出されるので
UI操作をするときはTThread.Synchronizeを使う必要があります(先日これに
はまった)。

[6305] Re8:TServerSocketの使用方法について返信 削除
2012/8/28 (火) 17:58:48 Mr.XRAY
▼ 福士さん,どうもです.

場末の喫茶店にご来店ありがとうございます.

> 横から失礼します。

失礼していただき感謝です.
この方面はほとんど無知ですので助かります.

[6306] Re8:TServerSocketの使用方法について返信 削除
2012/8/29 (水) 11:29:03 boo
福士様

TServerSocketの情報ありがとうございます。

SMP環境で正常動作しない問題を把握しておりませんでした。
TIdTCPServerを使用する方向で検討します。
ありがとうございました。

[▼次のスレッド]
INCM/CMT
Cyclamen v3.82