こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

ソケット通信

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

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では ちゃんと動いています。

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

投稿日時 - 2017-11-29 15:29:01

QNo.9402643

すぐに回答ほしいです

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

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

投稿日時 - 2017-11-29 15:49:08

お礼

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

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

これって大事ですよね?
これが原因って考えてもいいでしょうか?

投稿日時 - 2017-11-29 16:15:22

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問