通知
すべてクリア
Topic starter
2006年1月23日 2:04 PM
よろしくお願いします。
Windows2000,VC++6.0 MFCです。
異なる2つのポート(ポート1,2とします)を持つモデムを使う通信プログラムがあり、ポート
1でソケット通信を行い、ポート2でその他通信を行います。
その他通信では、500ms間隔でCreateFile-WriteFile/ReadFile-CloseHandleを繰り返して
いますが、何時間か繰り返すうちに、突然CloseHandleで止まってしまい、その通信が停止して
しまいます。
エラーが返って来るでもなく、プログラムが終了するわけでもない(ソケット通信は動いていま
す)のですが、CloseHandle処理が返ってこなくなる原因としてどういうことが考えられるでし
ょうか?
2006年1月26日 8:35 PM
RS-232Cの通信ですよね。
「CreateFile」は、起動時に1回、「CloseHandle」は終了時に1回でいいんじゃないでし
ょうか。
Topic starter
2006年1月27日 11:49 AM
はい、RS-232C通信です。
通常、起動時にオープンして終了時にクローズすれば良いと思うのですが、
複数のプログラムで同時に同じ通信処理を行うため、このような形になっています。
上記のようにCloseHandleが止まってしまうのはオープン・クローズの繰り返しが
影響するものなのでしょうか。
2006年1月27日 12:33 PM
確か、同じのRS-232Cポートで複数のプログラムで同時に通信処理を行うことは出来ませ
ん。
処理が重なっているタイミングがありませんか?
調べてみてください。