解決済み

ソケット通信

  • すぐに回答を!
  • 質問No.9402643
  • 閲覧数126
  • ありがとう数2
  • 気になる数0
  • 回答数1
  • コメント数0

お礼率 92% (142/153)

たびたびお世話になります。

CreateProcessで「cmd /C ***.bat」、
***.batの中では vbsを動かして、telnet xxx.xxx.xxx.xxx
を起動しています。

ウィンドウを表示させないように言われていますが、どうしてもtelnetが動くと、
ウィンドウが表示されてしまいます。
batのなかで、cscriptで*.vbsを読んでるからと思います。
(cscriptは画面を消せない???)

なので、ソケット通信に変更してみました。
まったくウィンドウが出ないので「良し良し!」だったのですが
動かない箇所が出てきました。

例えば、ボタンが複数あって ボタンごとに「set 0」「set 1」...「set 77」
などとsend()するのですが、「set 10」以降、set の次の数字が2桁になると動かなくなってしまいました。
特にclient側ではエラーにはならなくて、サーバー側・受けとったほうで解釈できないものと思います。
サーバー側での解析はできません(ROMに焼き付けてある箱(!)なので)
これって、そのままsend()してはダメでしょうか?
バイトオーダーの変換???とか関係ありますか?
関係あったとしても、バイトオーダーの変換のやり方がわかりません。(;_;)
(いろいろ試したけれどわかりませんでした)

telnetで送るデータ、そのままなんですが、当然telnetでは ちゃんと動いています。

すみません、どんなことでも良いのでアドバイスお願いいたします。

質問者が選んだベストアンサー

  • 回答No.1

ベストアンサー率 52% (2241/4279)

送信処理と別のスレッドで受信処理はしていますか?
普通のtelnetサーバーは、送られてきたコマンドのエコーバックが実装されているはずなので、それを受信してあげないと、サーバー側の送信バッファが一杯になって処理が止まるとかいうことも考えられなくはないかなと思いました。
お礼コメント
jg1wjz

お礼率 92% (142/153)

kawais070 さん、ありがとうございます。
受信処理は入れてあります。
ソケット通信処理は実は初めてで、見よう見まねで作りました。なので不安Max!

で今、送信bufferに ¥r¥n(大文字にしてあります)が入っていないことに気付き、入れてみたところ不安定ながら(!)動きました。
もうちょっと試験してみます。

これって大事ですよね?
これが原因って考えてもいいでしょうか?
投稿日時 - 2017-11-29 16:15:22
結果を報告する
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。
AIエージェント「あい」

こんにちは。AIエージェントの「あい」です。
あなたの悩みに、OKWAVE 3,500万件のQ&Aを分析して最適な回答をご提案します。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する

ピックアップ

ページ先頭へ