APIの制御が戻らない時

[戻る]
なすび 2006/01/23(月) 14:04:16
よろしくお願いします。
Windows2000,VC++6.0 MFCです。

異なる2つのポート(ポート1,2とします)を持つモデムを使う通信プログラムがあり、ポート
1でソケット通信を行い、ポート2でその他通信を行います。
その他通信では、500ms間隔でCreateFile−WriteFile/ReadFile−CloseHandleを繰り返して
いますが、何時間か繰り返すうちに、突然CloseHandleで止まってしまい、その通信が停止して
しまいます。
エラーが返って来るでもなく、プログラムが終了するわけでもない(ソケット通信は動いていま
す)のですが、CloseHandle処理が返ってこなくなる原因としてどういうことが考えられるでし
ょうか?

ITO 2006/01/26(木) 20:35:00
RS-232Cの通信ですよね。
「CreateFile」は、起動時に1回、「CloseHandle」は終了時に1回でいいんじゃないでし
ょうか。

なすび 2006/01/27(金) 11:49:35
はい、RS-232C通信です。
通常、起動時にオープンして終了時にクローズすれば良いと思うのですが、
複数のプログラムで同時に同じ通信処理を行うため、このような形になっています。
上記のようにCloseHandleが止まってしまうのはオープン・クローズの繰り返しが
影響するものなのでしょうか。

ITO 2006/01/27(金) 12:33:45
確か、同じのRS-232Cポートで複数のプログラムで同時に通信処理を行うことは出来ませ
ん。
処理が重なっているタイミングがありませんか?
調べてみてください。

古いスレッドには追加発言できません。