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


HSPTV!掲示板


未解決 解決 停止 削除要請

2015
0128
サンダーボルトファイル送受信ソフトがうまくできない3未解決


サンダーボルト

リンク

2015/1/28(Wed) 23:21:48|NO.67149

ファイルを送受信するやつです

サーバー側

*set #include "hspsock.as" fad="" fs=0 sdim fd,1 sockmake 0,50001 if stat!0:dialog "エラーが発生しました\nエラーコード:"+stat+"":end *manu screen 0,300,400 objsize 300,100 button "ファイルをロード",*load button "ファイルを送信",*send mes "送信するファイル" mesbox fad,300,100 mes "送信するサイズ "+fs+"Bite" stop *load dialog "*",16, if stat!1:goto *manu fad=refstr exist fad fs=strsize if strsize=0:dialog "ファイルが存在しません" goto *manu *send sockput ""+fs+"" wait 100 screen 1,300,200 repeat fs sdim fd bload ""+fad+"",fd,1,cnt sockputb fd,,1,0 color 225,225,225 boxf color pos 0,0 mes ""+cnt+"/"+fs+"" wait 1 loop GOTO *manu
クライアント側

*set #include "hspsock.as" fad="" fs=0 sdim fd,1 sockopen 0,"xxxxxxxxx",50001 if stat!0:dialog "エラーが発生しました\nエラーコード:"+stat+" repeat wait 1 sockwait 0 if stat=0:break loop sockget fs mes fs screen 1,300,200 repeat fs sockwait 0 repeat if stat=0:break wait 1 loop sdim fd,1 sockgetb fd,,1,0 bsave "0.bmp",fd,1,cnt color 225,225,225 boxf color pos 0,0 mes ""+cnt+"/"+fs+"" wait 1 loop
です
 クライアントが動作してないようです



この記事に返信する


774

リンク

2015/1/31(Sat) 19:18:26|NO.67190

hspsock自体全く使った事無いので間違ってるかも知れませんが…

・「sockwait」はサーバー側が、クライアント側の接続を待つ為の命令のようです。
・クライアント側で、サーバーからの送信を待つには「sockcheck」を使うようです。
・クライアント側、「sockget」で受け取った「fs」は文字列型のようですが、
 そのままrepeatの引数にして大丈夫なのでしょうか。
・ソケット切断の「sockclose」が見当たらないのですが、抜粋したソースだからでしょうか。

送受信に関しては上記のような点が気になりました。



サンダーボルト

リンク

2015/2/1(Sun) 18:59:23|NO.67209

はあ、そうなのですね
ちょっと勘違いしていたようです
そこで修正してみたのですが
クライアント側でエラーが出ます
ただ、bsave命令なのですが
bsaveで指定したファイル名が存在しなかったら
新しく作成されるはずなのですが?

サーバー

*set #include "hspsock.as" fad="" fs=0 sdim fd,1 sockmake 0,50001 if stat!0:dialog "エラーが発生しました\nエラーコード:"+stat+"":end *manu screen 0,300,400 objsize 300,100 button "ファイルをロード",*load button "ファイルを送信",*send mes "送信するファイル" mesbox fad,300,100 mes "送信するサイズ "+fs+"Bite" gosub *wat stop *load dialog "*",16, if stat!1:goto *manu fad=refstr exist fad fs=strsize if strsize=0:dialog "ファイルが存在しません" goto *manu *send sockput ""+fs+"" repeat wait 1 sockcheck 0 if stat=0:break loop screen 1,300,200 repeat fs sdim fd bload ""+fad+"",fd,1,cnt sockputb fd,,1,0 color 225,225,225 boxf color pos 0,0 mes ""+cnt+"/"+fs+"" repeat if stat=0:break wait 1 loop wait 1 loop GOTO *manu *wat repeat wait 1 sockwait 0 if stat=0:break loop dialog "接続" goto *manu
クラ

*set #include "hspsock.as" fad="" fs=0 sdim fd,1 sockopen 0,"192.168.0.2",50001 if stat!0:dialog "エラーが発生しました\nエラーコード:"+stat+" dialog "1" repeat wait 1 sockcheck 0 if stat=0:break loop dialog "2" sockget fs sockput "OK" mes fs screen 1,300,200 repeat fs sockcheck 0 repeat if stat=0:break wait 1 loop sdim fd,1 sockgetb fd,,1,0 bsave "0.bmp",fd,1,cnt sockputc 1,0 color 225,225,225 boxf color pos 0,0 mes ""+cnt+"/"+fs+"" wait 1 loop



774

リンク

2015/2/1(Sun) 23:43:27|NO.67218

スクリプトエディタでF1キーを押すことで、その命令のヘルプが出るはずですがご存知無いのでしょうか?
出てこないようであればファイルが壊れているのかも知れませんので、再インストールしてみましょう。

HSP付属エディタ以外をお使いの場合は、キーマクロなどで呼び出せるようにしといた方が良いです。
もし、そのような機能も無いエディタをお使いの場合は乗り換えをお勧めします。

で、bsaveのヘルプによりますと
>ファイルのオフセット値を指定すると、その値だけファイルの先頭からずらした場所からが操作の対象になります。
>bsave命令でオフセットを指定すると、 ファイルの先頭から任意のサイズを過ぎた場所からセーブを行なうことが可能です。
>(この場合は、それオフセットより前のファイル内容は変化しません。
>また、オフセット指定時はファイルが存在しない場合エラーとなります。)
とあります。最後の行です。



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