
今私はVisual Studio2010 C++で
ソケット通信のプログラムをしているのですが、
クライアントから送ってくる文字をうまく受信できません。
接続は出来ています。
_beginthreadexでスレッドを作っています。
以下が受信の処理のスレッドになっています。
unsigned int __stdcall ThSend(void* pArg)
{
CSocket_ServerDlg* pDlg = (CSocket_ServerDlg*)pArg;
while(1){
char buf[256];/* 受信するバッファ */
int buf_len;/* 受信したバイト数 */
buf_len = recv(pDlg->m_NewSoc,buf , RECVSIZE - 1, 0);
if (buf_len != SOCKET_ERROR ){
buf[buf_len] = '\0';/* 受信したバッファの後ろにNULLを付加する */
}
pDlg->m_xvEditResult += _T("Recv : ");
pDlg->m_xvEditResult += buf;
pDlg->m_xvEditResult += _T("\r\n");
}
return 0;
}
"m_"はメンバ変数です。
以下がスレッド作成のソースになっています
HANDLE hForth;
unsigned int nForthID;
hForth = (HANDLE)_beginthreadex(NULL, 0, ThSend , this, 0, &nForthID );
なぜ受信できないのか分からない状態です。
ではよろしくお願いします
No.1ベストアンサー
- 回答日時:
ソケットは、"ブロッキング モード" と "非ブロッキング モード" があったと思います。
現在、非ブロッキング モードになっていないのではないでしょうか?
それから、詳しく覚えてはいませんが、Windowsのソケット関数の仕様は、Unixx等のソケット関数と違っていたと思います。
「ソケットの一般的な仕様はこうである。そしてスレッドの仕様はこうである。だから、動作するはずである。」
と思ってプログラムを作ると、Windowsの場合、まともに動作しない可能性があります。
なので、私は、Unix上では、ソケットのプログラムをマルチスレッドで作成しても、相手となるプログラムがWindows上で作成する場合、マルチスレッドでは、作りませんでした。
まあ、マルチスレッドにすれば、プログラムが簡単になる面はありますが、動作しなかった場合の原因究明とうまく修正する自信が無かっただけなんですが・・・。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# C言語で再起関数とポインタを用いて文字列反転をする方法がわかりません。 4 2023/04/29 20:32
- C言語・C++・C# プログラミングの授業の課題です 1 2023/01/17 22:15
- C言語・C++・C# #include <stdio.h>int main(void) { int buf[100] = 6 2022/11/01 22:45
- Excel(エクセル) 2つのVBAを一緒にしたら機能しなくなりました(エクセル) 7 2022/06/02 12:41
- Visual Basic(VBA) Excel-VBAでのファイルの開き方 4 2023/02/14 11:01
- C言語・C++・C# c言語の問題です 3 2023/01/10 16:15
- Visual Basic(VBA) 複数csvを横に追加していくマクロについて 2 2023/04/25 09:19
- Visual Basic(VBA) フォルダの場所を可変にしたいです(マクロ) 4 2023/05/11 10:00
- Visual Basic(VBA) オブジェクトが見つかりません 1 2023/06/24 19:43
- Visual Basic(VBA) VBA エクセル 条件の設定 1 2022/03/28 10:24
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
発注してないのにシステム改修...
-
Zと2とか紛らわしいのがあるか...
-
東京でヨコイのソース買えますか?
-
パソコン教室ってどんなもので...
-
ポータルサイトの作成について
-
プログラマーってどんな仕事を...
-
英語→日本語 への翻訳
-
マクロ
-
サーボモーターのプログラミン...
-
ゲームプランナーのスクリプト...
-
フィットチーネについて
-
英訳をお願い致します。
-
お問合わせフォームなどを無料...
-
Amazonアソシエイトに登録・審...
-
サブウェイ
-
ダメなシステムの保守
-
洋風のおいしいとんかつソース...
-
【EXCEL 2013 VBA】重複した値...
-
EXEフャイルの中を見ることがで...
-
a8.ネットについて 最近登録し...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Zと2とか紛らわしいのがあるか...
-
三菱製PLC:ファイルレジスタ(...
-
テストについて
-
グーグルの障害者訓練プログラ...
-
三菱シーケンサーA1SHCPUとA1SJ...
-
東京でヨコイのソース買えますか?
-
インプットとアウトプット
-
オーバレイ方式と仮想記憶シス...
-
プログラムソースの値段
-
プログラム修正の際に古いソー...
-
ひな型ってなんですか?
-
初心者です。プログラムを作り...
-
フライに天つゆ
-
アフィリエイトプログラムについて
-
システムの世代管理
-
エントリーシート
-
3000行位の帳票作成プログラム...
-
自作プログラムの社内展開について
-
試験勉強の為の質問
-
ゲームプランナーのスクリプト...
おすすめ情報