• 締切済み

■ソケット通信 送信文字列のオーム返し

こんにちは。Win2000、VB6.0(SP5)でソケット通信をしようと思っています。 接続や、送信・受信をすることはできたのですが、受信したとき、送信文字列も受信され困っています。 <例> 送信:abc 受信:abc    12345(期待する返答) という感じです。 期待する返答の文字数が決まっているので、それ以外はゴミとして扱うこともできるのですが、時々ですが、abc12345のように、送信文字列と受信文字列がくっついてきてしまうこともあり、解決するならしたいと思っています。 telnetでテストすると、オーム返しはありません。 あと、相手の装置には、オーム返しの機能はないそうです。 よろしくお願いします。

みんなの回答

回答No.2

telnetは作ったプログラムではなく他の端末ソフト(DOS窓とかTeraTermとか?)から相手装置に対して行なったのでしょうか。 そのとき、キーボードから打ち込んだ文字が画面に出てこなかったでしょうか。相手の装置がエコーバック(オーム返し)していると思うのですが。。。

izumi_charis
質問者

お礼

回答ありがとうございます。 結局、相手(サーバー)側にエコーバックON/OFF設定がありました。最初の電話ではそんな機能はないと言っていたのに、、、(T-T)お騒がせしました。

  • -boya-
  • ベストアンサー率35% (176/494)
回答No.1

状況(相手の装置、変数の渡し方、コードなど)が全く 分からないので可能性だけのお話になりますが、送信の時に 使用している変数と、受信の時に使用している変数に同じものを 使っていて、文字列がくっついているだけ、、、 ってことは無いですか?

izumi_charis
質問者

お礼

回答ありがとうございました。相手の装置にON/OFF設定があり、解決しました。

izumi_charis
質問者

補足

返答ありがとうございます。先ほどはVBが使用できない環境にいましたので、ここでコードを記載させていただきます。 <送信> Private Function fbSendMovePos() As Boolean Dim strbuff As String strbuff = "@?WHERE" & vbCrLf 'パルス用   WSock.SendData strbuff End Function <受信> Private Sub WSock_DataArrival(ByVal bytesTotal As Long) Dim strRecv As String '応答受信 WSock.GetData strRecv, vbString End Sub 変数はグローバルではないので、文字列はくっついていないと思います。 何かお気づきの点がありましたら、よろしくお願いします。

関連するQ&A

  • 文字列の比較について

    お世話になります。 次のような文字列の比較を考えているのですが 123456789 123456ABC89 この場合、ABCを7に置き換えると文字列が一致する ので、「7」と「ABC」を取り出したいのですが、 どのように調べたらよいでしょうか? VBはいろいろと関数も用意されているので、現在は instrとinstrrevを使って相違のある場所を調べようと していますがなかなか思うようにいきません。 お願いします。

  • CCurの引値を文字列にする時と数値にするときの違い?!

    今VB6.0SP5を用いてPGを作成しているのですが、 【CCur】関数を用いて少数点の計算を行っていますが予想外の動きに戸惑っております CCurの引値に数値を指定したときと文字列をしてしたときの返値が異なるのですがどういうことなのでしょうか? 数値型  引値 0.0001 ※0.00005 0.0001 ※0.00015 0.0003 ※0.00025 0.0003 ※0.00035 0.0004 ※0.00045 0.0006 ※0.00055 0.0006 ※0.00065 0.0008 ※0.00075 0.0008 ※0.00085 0.0009 ※0.00095 文字列型       引値 0 ※0.00005 0.0002 ※0.00015 0.0002 ※0.00025 0.0004 ※0.00035 0.0004 ※0.00045 0.0006 ※0.00055 0.0006 ※0.00065 0.0008 ※0.00075 0.0008 ※0.00085 0.001 ※0.00095 ヘルプ等でも調べたのですが、引値は「オブジェクト」となっていて数値でも文字列でも構わない風なのですが返値が異なるので困っております。 文字列を指定した時は【丸め】が行われているは確認できたのですが、数値型の規則性がわかりません。 その辺りの情報をご教授お願いします。 環境 OS:Win2000 SP4 WinNT SP5 VB6.0 SP5

  • シリアル通信(送信について)

    現在VB6.0を使用してシリアル通信(RS232C)をMSCOMMを使用して行いたいのですが、受信は出来たのですが、送信がうまくいかない状態です。 MSComm.Output = 送信文字列 & vbCr とすると結果の値を受信できる予定なのですがエラーですという値が返ってきます。 同じ操作をTera Term等で行うと結果が正しく返ってきます。 何故そうなるのかわからない状態で困っております。 何かアドバイス頂けないでしょうか。

  • WinSock2。ナル文字をソケットに含めるには?

    C言語を学び始めて間もないのですが、ggってもヒットしなかった疑問があるので質問させていただきます。 用語が間違っていたらすみません。 WinSock2を用いてソケットを送信するプログラムを作っています。 末尾にナル文字のつく内容を、ナル文字含めて送信したいのですが、上手くいきません。 ソケット作成⇒コネクト⇒ _snprintf(buf, sizeof(buf), "XXXXX\0\0"); send(sock, buf, (int)strlen(buf), 0); 送信部分はこのようになっています。 パケットモニタで監視してみたところ、「XXXXX」が送信されていました。 Perlで同様なものを組んだところ、「XXXXX\0\0」が送信されています。こちらが送りたい内容なのですが・・・ 確かにCではナル文字を文字列の末尾と認識しますが、 ナル文字も文字列の一部として一緒に送信させてあげることはできますか? わかりにくい説明ですみませんが、宜しくお願いします m(__)m

  • ソケット通信

    http://www.microsoft.com/japan/msdn/vbasic/migration/tips/Socket/ 上記サイトのVB.NETのサンプルを動作させてみたところ 2バイト文字を送信すると 閉じ括弧”」”以降の文字が表示されません。 半角文字だとちゃんと表示されます。 プログラムの動作を追ったところ strReceivedData に入っているデータが 2バイト文字を使用すると 例・・・ああああ を送信したとき "ああああ というデータになっているようでその関係で表示が崩れるみたいです。 ためしに表示の直前で strReceivedData のデータを編集し "ああああ" とするとちゃんと閉じ括弧以降も表示されました。 どうして2バイト文字が入ると受信データの閉じの " が消えるのでしょうか?

  • VB6で画像ファイルのソケット通信

    VB6で画像ファイルのソケット通信をしなければいけなくて、 サンプルソースを探しているのですが、どなたか すごくシンプルでもよいので教えて頂けないでしょうか。 javaやCなどのサンプルは見つかるのですがVB6しか分からなくて 困ってます。文字列のやりとりのサンプルはありましたが、 画像ファイル(JPEGとかTIFとか)をやり取りするときの バイナリ(?)で送って、受取ってというところのサンプルが ほしいのです。。どなたか助けてください。

  • 文字列を変数名として扱う方法

    vb6.0 か vb.net で文字列を変数名として扱うにはどうすればいいでしょうか? 例をあげると下記のようなことです。 -------------------- dim abc as string dim x as string abc = "テスト" x = "b" msgbox "a" & x & "c" -------------------- これをそのままvb6.0で実行すると"abc"という文字が表示されますが "abc"ではなく"テスト"と表示させたいのです。 つまり msgbox abc とした場合と同じようにしたいのですが可能でしょうか? ご存知の方教えてください。 よろしくお願いします。

  • Accessからのソケット通信について

    Access2010(VBA)+BASP21を利用して 別のアプリに対してテキストデータをソケット通信で受け渡す際の 文字コードについて教えて下さい。 まず、受け取る側のアプリはUTF-8でないと 受け取れない仕様となっております。 Accessから送信する際は、あらかじめUTF-8で保存された テキストファイルを変数に読み込み、それをBASP21から送信しているのですが どうやら、送信する時に文字コードが変わっている?のか ただしくデータを受け取ってくれません。 (アプリの受信ログを見ると、受け取ったデータが 一部文字化けしておりました) Accessからデータを送信する際に、確実にUTF-8にて データを送信したいのですが、どのような方法があるでしょうか。 ご存じの方、教えて下さい。宜しくお願い致します。

  • JavaのSocketで、データを送ったのに応答が

    JavaのSocketで、データを送ったのに応答がありません。 iPod touchで、データを送ったらオウム返しのように送られてきたデータをそのまま返すプログラムを実行しました。 パソコンのJavaでソケット通信を行い、接続とウェルカム文は表示できました。 しかし、データを送ったのに帰ってきません。 おかしいので、telnetで確認したところ、うまく作動しました。 となると、telnetではうまくいき、javaのソケットではうまくいかない…javaが原因と思います。 telnetとjavaのソケットとでは、何か違いがありますか? javaでは、入力された文字列をそのまま送信しています。エンコードや何かが必要ですか?

    • ベストアンサー
    • Java
  • 正規表現で任意の文字列が含まれない文字列の取得

    VB6/VBAでお願いします。 <tr> <td>あいうえお</td> <td>かきくけこ</td> </tr> ここで、<td>と</td>に挟まれた文字列を取得しようとするのですが、 ABCとXYZ両方が取得できます。任意の文字列を含まない指定はどう すればいいでしょうか? この場合、「きくけ」を含まない「あいうえお」を取得したいと思い ます。