HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2007
0115
としあきhspsockでの、sockputcとsockgetcについて3解決


としあき

リンク

2007/1/15(Mon) 22:04:29|NO.4822

 HSPSOCKについて勉強し、ソケット通信について大体分かるようになしましたが、sockputc
やsockgetcのような、データの1バイト送受信の使い方、というか使いどころが分かりません。
 どういう時に、sockputcやsockgetcのような、データの1バイト送受信を使うのか、どうか
教えてください。



この記事に返信する


As

リンク

2007/1/16(Tue) 00:55:00|NO.4829

一言でいうと…合図ですかね?


例えばクライアント側で特定のアプリケーションを起動させたい場合に、
そのクライアントに特定の文字を送ればそのアプリケーションが起動する。

これはごくあたりまえな使い方ですが、他にも

これから大容量のファイルを送りますよーという合図に用いたりもできます。
そして大容量のファイルを転送し終わったら1byte送って転送の終了を知らせる。


他にも1つのアプリケーションで複数の転送の動作がある場合。
これは 画像の転送・アプリケーションの起動・大容量ファイルの転送 などに分けたとして、
これらに A、B、C、という値をつける。

sockputcで A というデータが転送されたら、クライアントは画像の受信の準備がされる。
・・・という風にできるわけです。

他にも利用方法はありますが、この方法が主流かと思います。多分^^;



kanzaki

リンク

2007/1/16(Tue) 14:29:56|NO.4842

私だけかもしれませんが(よって、蛇足な内容かと思いますが、上手くいかないときのヒントになればと思います)
SMTP接続を行った際に、相手サーバーによってsockputでは上手くいかずに
sockputcを使用したことがあります。

基本は、As様の用途が一般的だと思います。


data = "MAIL FROM:<test@test.com>\n"
sockput data,0
では上手くいかず

data = "MAIL FROM:<test@test.com>\n"
repeat strlen (data) sockputc peek (data,cnt),0 loop

とした事があります。ただし原因までは解りませんでしたが…


使用する通信プロトコルが
1バイトごとに処理・応答をする必要があるものであれば
このような命令を使用する価値がありますが
確かに疑問を感じる部分ですね。

あとは、変数に代入せずにコードの送信が出来る…くらいでしょうか



としあき

リンク

2007/1/16(Tue) 22:48:21|NO.4854

返答ありがとうございます。

何かの合図に使うというのは、自分も考えましたが、TCP/IP通信は読んだ本だと通信の信頼性
を重視しているから、エラーが出ない限り確実に届くので、合図とかいらない気がするんです。

今作っているプログラムは、普通のsockputやsockgetで事足りているのでいいのですが、逆に、
sockputcやsockgetcをどんな時に使うのか想像できなかったから、気になって質問させてもら
いました。

実際、まだ良く分かりませんが、多分必要な時、自然に使いどころが理解できるようになると
思います。

Asさん、kanzakiさん、
今回、自分の質問に、親切に答えていただき、ありがとうございます。



ONION software Copyright 1997-2018(c) All rights reserved.