ServerSocketに関する質問をWEBで
さがしこの掲示板にたどり着きました。
しかし、ちょうど回答はDelphi7では
コンポーネントがなくなっているとのことで
スレッドが終わっていたため、Delphi7に関しての
新規質問として書き込みます。
よろしくお願いします。
Delphi5でServerSocketコンポーネントを使って
作成されたプログラムをDelphi7に移行することに
なりました。
(ちなみに通信機能の作成は今回はじめて
チャレンジします。ソケット通信ができた
らシリアル通信…ああ。用語の使い方がお
かしかったら突っ込みをいれてください。)
TcpServer(socket)コンポーネントに置き換えれば
同じ動きをするのではないかと思い(「DEMO」で
CHATを作成する時にこのコンポーネントを使って
いたので)Delphi7でTcpServerのイベントを見て
びっくり。そのまま当てはまりそうなイベントが
ないのです。
具体的には、ServerSocketのClientReadイベント
のことです。
見当違いなコンポーネントに手を出しているのか
それともソースの書き方でなんとかなるものなのか
をご存知の方教えてください。
以上です。
# シリアル通信は、RS232Cなどでのシリアル機器との通信では?
Demoを見る限りでは、OnAcceptイベントで処理していますね。OnAcceptを使えばよろしいかと思います。
Demoのチャットは、
「クライアント側」
クライアントがサーバにメッセージを送信
「サーバ側」
クライアントから送られてくるメッセージを取得し表示
だけのようですので、もう少し手を加える必要があると思います。
ちなみに、TIdTCPServerの場合は、OnExecuteで処理します。
Delphi7でもServerSocket ClientSocketを利用出来ます。
Delphi7インストールディレクトリ内のreadmeを見ていただくと、
"お薦めしないコンポーネント"として説明があります。
過去のプログラムのメンテのときに使ったことがあります。
本当はTcpServer Tcpsocketを使っていくべきなのでしょうけれど。
にしのさんのレスを読ませていただいて、余裕のあるうちに
TcpServer Tcpsocketに置き換えないといけないなと思いました。
(個人的な感想こんなとこに書くなって感じですねw)
にしのさん、ThirdさんRESありがとうございました。
OnAcceptイベントに書く方向で進めていこうと
思います。
言葉が足らなくてすみません。
「おすすめしないコンポーネント」という形で
入れられることは調べていましたが、おすすめしないには
なにか理由があるんだろうと思って、断念しました。
以上です。
すみません、誤解を生むような書き方をしてしまいました。
># シリアル通信は、RS232Cなどでのシリアル機器との通信では?
ソケット通信アプリを作った後に
RS232Cでシリアル機器からデータをもらうアプリに挑戦、といういみでした。
以上です。
> 「おすすめしないコンポーネント」という形で
> 入れられることは調べていましたが、おすすめしないには
> なにか理由があるんだろうと思って、断念しました。
DelphiのVCLは、Kylix(Linux)との統合を考えているようです。
その上で、おすすめしないコンポーネントは、Windowsに特化した書き方をしているんだと思います。
中でも、Socket系はIndyにまとめたいような感じにも思えます。
Indy自体、9のバグフィックスがまだですし、10は形になっていませんが。
そういえば、Kylixもバージョン止まってますね。