掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
自作の他のアプリの操作 (ID:60169)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
επιστημηさん、ありがとうございます。 MFCしか分からないので、それにあわせてフォームビューでアプリを作ってみたのですが、うまくいきません。 サンプルは、severアプリとclientアプリ相互でデータのやり取りをしていると思うので、送りと受けだけにしました。 (SendとReceiveをワンセットにする必要があるのかもと思いましたが、試してみると結果は同じでした) インクルードは、いずれもview.cppの頭に書きました。 両方ともボタンをつくり、その中にコーディングしてみました。 severアプリ void CseverView::OnBnClickedButton1() { AfxSocketInit(); CSocket listenSocket; listenSocket.Create(4444); // port-no. listenSocket.Listen(); CSocket socket; listenSocket.Accept(socket); char buffer[64]; strcpy(buffer, "さようなら"); printf("I say: [%s]\n", buffer); socket.Send(buffer, strlen(buffer)); socket.Close(); listenSocket.Close(); } これでボタンをクリックするとアプリが固まります。 また、リビルドする時、socket.Sendの行について、 '引数' : 'size_t' から 'int' に変換しました。データが失われているかもしれません。 という警告が出ます。 clientアプリ (エディットボックスのメンバ変数valueをm_edit1にしました) void CclientView::OnBnClickedButton1() { AfxSocketInit(); CSocket socket; socket.Create(); socket.Connect("localhost", 4444); // マシン内で接続するので"localhost" char buffer[64]; int len = socket.Receive(buffer,64); buffer[len] = '\0'; m_edit1 = buffer; UpdateData(false); socket.Close(); } 実行すると、 Run-Time Check Failure #2 - Stack around the variable 'buffer' was corrupted. というエラーになります。 アプリを両方立ち上げていても同じです。 以下、疑問点を、箇条書きします。 1. --- server.cpp --- --- cl -MD -D_AFXDLL -EHsc -DWINVER=0x0502 server.cpp(およびclient.cpp) は、必要なのでしょうか。 リビルドでエラーにはなりませんが、書いても実行時に固まります。 2.通信する場合、受け手は待ちうけ状態になっている必要があるかと思いました。 で、PreTranslateMessageをハンドルしてみましたが、同じ結果になります。 if(pMsg->message == *****) {} が必要かとも思いましたが、の*****の部分が分かりません。 双方ともOnBnClickedButtonでよろしいのでしょうか。 3.ふたつのアプリを同じフォルダに入れておく必要はありますでしょうか。 申し訳ありませんが、お願いいたします。
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.