Winsockを使用してデータの受信プログラムを作成していまが、以下の問題が出ています。
D/F/Hパソコンでテストを行うと1884バイトを一括で受信(GetData)できるのですが、HPパソコンで同じプログラムを動作させると1024バイトで分割されて受信されます。
バイト数は
Declare Function lstrlen Lib "kernel32" Alias "lstrlenA" (ByVal lpString As String) As Long
で取得しています。
1.Winsockで最大何バイトまで受信できるのでしょうか?
2.上記HPパソコンでどこか設定があるのでしょうか?
以上。よろしくお願いします。
A 回答 (3件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
いちおう質問に回答すると。
1.特別に制限はないはずですが(かなり自信なし)、UDPですからM単位のデータをやりとりするには向きません。
2.MTUの値が違う可能性はあります。
ちなみにUDPは確か512バイトを1パケットとして送信するはずなので、HPのパソコンでは2パケットで分割されているのでしょう。
なおWinsockですが、使用しているのは Winsockコントロールでしょうか? それともAPIでしょうか?
とりあえずWinsockコントロールという前提でお話しますが、どのような方法でデータの受信を行っていますでしょうか?
lstrlenAを使われているということですから、恐らくこんな形なのではないかと思われます。
'電文を受け取る
winsock.GetData acString, , bytesTotal
これだと状況によってうまくいかないことがあります。
電文はバイト配列で受け取りましょう。
Dim abyteRecData() As Byte '受信データ
Dim alByteNum As Long '電文長
Dim acRecvMess As String '電文内容
'電文を受け取る
winsock.GetData abyteData, vbArray + vbByte, bytesTotal
'受信データ長を取得
alByteNum = UBound(abyteRecData)
'電文を変換する(バイト配列をVBの文字型(Unicode)にする)
acRecvMess = StrConv(abyteRecData, vbUnicode)
'バイト配列をクリア
Erase abyteRecData
以上の流れで組み込めば正常に受信出来るのではないかと思われます。
……違ったらごめんなさい。
MTU値を最大にしても、プログラムをいじってもダメでした。
HPサポートセンターに問い合せても、これ以上(レジストリ操作)の質問は受け付けられないと蹴られてしまいました。
プログラムを1024バイトづつ2回に分けて取得するようにしました。
みなさんありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Access(アクセス) Vba Userformを前面に出すについて 3 2022/04/15 12:29
- Visual Basic(VBA) VBA リボンののリカバリーでオーバーフローエラーになります 2 2023/07/04 19:07
- Visual Basic(VBA) batからexeを実行し戻り値を受け取る バッチからEXEの結果を受け取りたいのですが、 下記のバッ 1 2023/07/04 15:13
- その他(メールソフト・メールサービス) メールサーバーは「PC側がメールをDL済みか否か?」を何を以て感知するのか? 2 2022/12/20 14:56
- Visual Basic(VBA) VBAにてメール作成した際、一部指定箇所のみ赤文字にしたいです。 下記の内容ですと作成されたメール本 1 2022/04/27 13:31
- Visual Basic(VBA) outlook マクロが終了しません。 1 2022/09/02 11:14
- Visual Basic(VBA) 動かなくなってしまった古いVBAを動くようにしたい 8 2022/09/20 13:57
- Visual Basic(VBA) VBAでoutlook365が起動しません。 4 2022/08/25 13:31
- Visual Basic(VBA) batからexeを実行し戻り値を受け取る EXEの実行内容の結果によって、戻り値を0か1かで返したい 1 2023/07/04 16:40
- Visual Basic(VBA) Vba LongPtrについて教えてください 2 2022/08/19 11:14
このQ&Aを見た人はこんなQ&Aも見ています
-
カンパ〜イ!←最初の1杯目、なに頼む?
飲み会で最初に頼む1杯、自由に頼むとしたら何を頼みますか? 最初はビールという縛りは無しにして、好きなものを飲むとしたら何を飲みたいですか。
-
あなたにとってのゴールデンタイムはいつですか?
一週間の中でもっともテンションが上がる「ゴールデンタイム」はいつですか? その逆で、一週間でもっとも落ち込むタイミングでも構いません。 よかったら教えて下さい!
-
土曜の昼、学校帰りの昼メシの思い出
週休2日が当たり前の今では懐かしい思い出ですが、昔は土曜日も午前中まで学校や会社がある「半ドン」で、いつもよりちょっと早く家に帰って食べる昼ご飯が、なんだかちょっと特別に感じたものです。
-
プリン+醤油=ウニみたいな組み合わせメニューを教えて!
プリンと醤油を一緒に食べると「ウニ」の味がする! というような意外な組み合わせから、新しい味になる食べ物って色々ありますよね。 あなたがこれまでに試した「組み合わせメニュー」を教えてください。
-
とっておきの「まかない飯」を教えて下さい!
飲食店で働く方だけが食べられる、とっておきの「まかない飯」。 働いてらっしゃる方がSNSなどにアップしているのを見ると、表のメニューには出てこない秘密感もあって、「食べたい!!」と毎回思ってしまいます。
-
winsock通信時エラーの回避
Visual Basic(VBA)
-
Winsockで1460Byte以降のデータが細切れに
Visual Basic(VBA)
-
winsockを使ったTCP及びUDP通信について
C言語・C++・C#
-
-
4
VB6のwinsockでconnectできない
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・【大喜利】【投稿~11/22】このサンタクロースは偽物だと気付いた理由とは?
- ・お風呂の温度、何℃にしてますか?
- ・とっておきの「まかない飯」を教えて下さい!
- ・2024年のうちにやっておきたいこと、ここで宣言しませんか?
- ・いけず言葉しりとり
- ・土曜の昼、学校帰りの昼メシの思い出
- ・忘れられない激○○料理
- ・あなたにとってのゴールデンタイムはいつですか?
- ・とっておきの「夜食」教えて下さい
- ・これまでで一番「情けなかったとき」はいつですか?
- ・プリン+醤油=ウニみたいな組み合わせメニューを教えて!
- ・タイムマシーンがあったら、過去と未来どちらに行く?
- ・遅刻の「言い訳」選手権
- ・好きな和訳タイトルを教えてください
- ・うちのカレーにはこれが入ってる!って食材ありますか?
- ・おすすめのモーニング・朝食メニューを教えて!
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・秘密基地、どこに作った?
- ・【お題】NEW演歌
- ・カンパ〜イ!←最初の1杯目、なに頼む?
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Outlookの「受信日時」「件名」...
-
TCP/IP のパケットの分断と結合...
-
C#にてCTI。RS232Cの受信と送信...
-
無線LAN、SIFSについて
-
recv関数の戻り値について
-
VC++メッセージの送受信につい...
-
シリアル通信時のデータ受信方法
-
Outlookの「受信日時」「送信者...
-
パソコンに詳しい方教えて下さ...
-
Windows上のファイル操作の履歴...
-
別のフォルダにファイルを移動...
-
バッチファイルでディレクトリ...
-
ipadで社内ネットワークに接続
-
sftp時の公開鍵認証
-
2台のPCのデータ同期をとり...
-
指定ファイルをFTPで自動アップ...
-
隠しファイルとZip圧縮について
-
SystemWalker Centric Manager...
-
Win7のPCのサーバー内のファイ...
-
visual studio 2008 libファイ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Outlookの「受信日時」「件名」...
-
TCP/IP のパケットの分断と結合...
-
UDP受信時の通信異常検知について
-
シリアル通信時のデータ受信方法
-
「TCPは全二重可能」の意味
-
DHCPOFFERの受信について
-
Outlookの「受信日時」「送信者...
-
C#にてCTI。RS232Cの受信と送信...
-
TCPでパケットロス?
-
recv関数の戻り値について
-
RS232cを用いた送信プログラム
-
CRC-CCITTに関しての仕様とサン...
-
winsockを使ったTCP及びUDP通信...
-
バイナリをテキストファイルに...
-
javamail
-
VC++メッセージの送受信につい...
-
赤外線センサーについて
-
ネットワークでの受信バイト数
-
ソケットプログラミング(配列に...
-
LINE APIからasp.net の web サ...
おすすめ情報