![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
こんばんは。
VC++.NET2003でC言語にて、UDPソケットプログラミングを行っています。
A:送信端末
B:受信端末
とし、送信端末から受信端末へ各パケットにシーケンス番号を付加し1024Byteずつパケットを送信。受信端末は、送信端末からのパケットを受信するのですが、受信できなかったパケットがある場合、シーケンス番号を送信端末へ送信します。
これらから、送信端末は、送信と受信スレッドを持つ、マルチスレッドを行っています。
以下に送信端末のプログラムを示します。
main{
//受信スレッド生成
hTh = (HANDLE)_beginthreadex(NULL, 0, Sequence_Number, NULL, 0, &thID);
UDPSending(s_port,szServer);
//受信スレッド終了待ち
WaitForSingleObject( hTh, INFINITE );
CloseHandle(hTh);
}
//送信スレッド
UDPSending(s_port,szServer){
//fread関数にて、1024Byteずつ区切る
while((n = fread(send_Buf,1,SEND_DATA_SIZE,fp)) != 0) {
UDPDataSend(s_port, szServer, send_Buff, n+mojisuu);
}
}
UDPDataSend(unsigned short s_port, char *szServer, char *send_Buff, int n){
sendtoにて受信端末へ送信
}
//受信端末からの未受信シーケンス番号を受信(受信スレッド)
unsigned __stdcall Sequence_Number(void *lpx){
recvfrom関数によりシーケンス番号を受信
}
[付け加えたい機能]
送信スレッドにおいて100個のパケットを送信したら、一時的に送信スレッドを停止させ、受信スレッド内の処理を行い、受信スレッド内の処理が終えたら、再度、送信スレッドを再開させる方法はありますでしょうか?
イメージでは・・・
S:送信スレッド
R:受信スレッド
とした場合、
S(100個パケット送信)→Sの休止→Rの処理→Rの処理が終えたら→Sの再開(再度100パケット送信)・・・・
の繰り返しです。
よろしくお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# TCP/IP通信時のサーバーからの受信 2 2022/11/23 09:11
- iCloud iPhone端末変更時のLINE引継ぎ 4 2023/07/09 15:07
- PHP ここでの ②if($su_d<>"")の比較演算子 を使う理由は 1 2022/03/26 02:33
- その他(メールソフト・メールサービス) メールサーバーは「PC側がメールをDL済みか否か?」を何を以て感知するのか? 2 2022/12/20 14:56
- その他(メールソフト・メールサービス) 1つの端末で複数のメールアドレスを使って同じ宛先に送信した場合、相手には同じ端末からメールが送信され 3 2022/09/23 14:58
- 格安スマホ・SIMフリースマホ SIMカード情報 3 2022/06/18 18:00
- Android(アンドロイド) ショートメッセージがAndroidのみ送受信できない 5 2023/01/02 12:50
- UNIX・Linux Ubuntuサーバーでメールを受信できない 7 2022/08/23 20:55
- Gmail Gmailの設定。送られて来た添付画像を返信する際、添付されないようする設定の仕方を知りたい。 2 2022/09/20 23:43
- Outlook(アウトルック) 未読ならば受信トレイから削除する 2 2023/02/12 19:21
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
あんまり考えたくないけど
-
パソコン
-
C言語について。
-
C言語について。
-
コンソールアプリを作成するの...
-
C言語について。
-
アンリアルエンジン5に関して、...
-
次の日本語の意味を教えて下さい
-
バッチファイルで以下のような...
-
プログラム言語について c言語...
-
ハミング符号の解読について
-
C言語初心者 構造体 課題について
-
0 == False はいいけど
-
ArduinoでMouse関数を使用して...
-
C言語でファクト関数を使わずに...
-
C# でソフト開発をした事のある...
-
C言語 バッファについて。
-
ホワイトハッカーを目指そうか...
-
10進数からN進数に変換するプロ...
-
プログラミングの課題がわから...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Outlookの「受信日時」「件名」...
-
TCP/IP のパケットの分断と結合...
-
RS232cを用いた送信プログラム
-
UDP受信時の通信異常検知について
-
ASP.NET C#でPOST受信
-
シリアル通信時のデータ受信方法
-
Outlookの「受信日時」「送信者...
-
TCPでパケットロス?
-
TCPのプログラミングで質問…と...
-
recv関数の戻り値について
-
DHCPOFFERの受信について
-
msgrcv( )で領域破壊?
-
パケット受信 recvfrom( )につ...
-
「TCPは全二重可能」の意味
-
C#にてCTI。RS232Cの受信と送信...
-
CRC-CCITTに関しての仕様とサン...
-
MTUで!!
-
PC98で232c送信winndowで受信で...
-
VB2010で、シリアル通信の方法...
-
winsockを使ったTCP及びUDP通信...
おすすめ情報