ソケットへの連続送信についてご質問があります。

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
taketoshi
記事: 222
登録日時: 15年前
住所: 日本国

ソケットへの連続送信についてご質問があります。

#1

投稿記事 by taketoshi » 14年前

TCPでエコーバックサーバー的なプログラムを構築しています。
同じイベントハンドラで同一のソケットへ連続で送信すると、二回目のsend関数がサーバーに届いてないようです。
回避方法はありますでしょうか、たとえば以下のようなコードです

コード:

			//Winsock接続完了通知
			case FD_CONNECT:
				bRet = ws.Connect(lParam);
				if(bRet == true){
					//サーバーからデータの引き出し
					ws.SetRequest(1,NULL);
					ws.SendData();
					//サーバへユーザー名の登録
					ws.SetRequest(2,NULL);
					ws.SendData();
				}
				break;

このコードではユーザー名の登録がスルーされてしまいます。
ご指導お願いいたします。

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 15年前
住所: 東海地方
連絡を取る:

Re: ソケットへの連続送信についてご質問があります。

#2

投稿記事 by softya(ソフト屋) » 14年前

wireSharkなどでパケットは確認されましたか?
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

taketoshi
記事: 222
登録日時: 15年前
住所: 日本国

Re: ソケットへの連続送信についてご質問があります。

#3

投稿記事 by taketoshi » 14年前

wireSharkをダウンロードして確認してみました。
ちょっと操作が難しくてドコをみていいのかわからなかったです。

メッセージボックス関数でサーバー側の受信文字列を都度出力していたのですが、挙動が少し変でした。
連続でソケットにデータを送信した場合、サーバー側はデータをどのように読み出していくのでしょうか。

taketoshi
記事: 222
登録日時: 15年前
住所: 日本国

Re: ソケットへの連続送信についてご質問があります。

#4

投稿記事 by taketoshi » 14年前

デバッグかけて色々追っかけたところ、自己解決しました。

サーバー側の受信部分にバグがあり、前回の受信が終わらないプログラムになっていました。
softyaさんありがとうございました。

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 15年前
住所: 東海地方
連絡を取る:

Re: ソケットへの連続送信についてご質問があります。

#5

投稿記事 by softya(ソフト屋) » 14年前

解決したみたいですが、使い方はこちらを。
「Wiresharkでネットワーク・プロトコルを解析する(基本操作編) - @IT」
http://www.atmarkit.co.jp/fwin2k/win2kt ... shark.html

wiresharkは便利ですのでぜひ活用してください。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

閉鎖

“C言語何でも質問掲示板” へ戻る