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


HSPTV!掲示板


未解決 解決 停止 削除要請

2012
1115
SIMp受信について4未解決


SIMp

リンク

2012/11/15(Thu) 18:46:11|NO.50686


//クライアント側 #include "hspsock.as" Port = 1000 ipget IP = refstr print "サーバー接続中..." repeat sockopen 1,IP,Port if stat!0 : else : break wait 100 : loop Path = "Test.png" exist Path FileSize = ""+strsize sockput FileSize,1 if stat!0 : goto *Error FileSize = int(FileSize) sdim FileData,FileSize bload Path,FileData,FileSize sockputb FileData,0,FileSize if stat!0 : goto *Error ;sockput Comment,Sock_Num(Mynum) ;if stat!0 : goto *Error *Close sockclose 0 end *Error dialog "エラーです。" end //サーバー側 #include "hspsock.as" Port = 1000 ipget IP = refstr sockmake 0,Port if stat!0 : goto *Error print "サーバー待機中..." repeat sockwait 0 if stat>= 2 : goto *Error if stat = 0 : break wait 1 : loop repeat sockcheck 0 if stat>=2 : goto *Error if stat =0 : break await 100 : loop FileSize = "" sockget FileSize,64 if stat!0 : goto *Error FileSize = int(FileSize) sdim FileData,FileSize repeat sockcheck 0 if stat = 1 : dialog "E:"+1 : end if stat = 2 : dialog "E:"+2 : end sockgetb FileData,Total,FileSize Total = Total+stat : title ""+Total+"/"+FileSize if Total = FileSize : break wait 1 : loop bsave "Sample.png",FileData,FileSize dialog "受信完了しました。" *Close sockclose 0 end *Error dialog "エラーです。" end ファイルの送信、受信ソフトを作っています。 サーバー側で画像ファイルの受信が上手くいきませんOrz(ファイルサイズの受信は出来ました なぜなのでしょうか?回答よろしくお願いします><



この記事に返信する


SIMp

リンク

2012/11/15(Thu) 18:48:48|NO.50687

すいません
ソースコードの後に、<pre/>を忘れていました・・・。



ANTARES

リンク

2012/11/16(Fri) 08:59:59|NO.50698

 ipgetで得られるのは自分のIPですが、それはわかってるんですよね?

 sockcheckでstatが1のときはエラーにせず、待機するべきみたいです。
タイムアウトは時間を計らないと判定できません。

 sockgetbの使い方が間違っています。マニュアルとスクリプト全体を
読み直しましょう。

 sockputbの使い方が2つ間違っています。マニュアルを読み直しましょう。



SIMp

リンク

2012/11/17(Sat) 18:03:22|NO.50721

クライアント側の送信部分を

sockputb FileData,0,FileSize,1

サーバー側の受信部分を

repeat sockcheck 0 if stat = 2 : goto *Error if stat = 0 { sockgetb FileData,Total,FileSize,0 Total = Total+stat if Total = FileSize : break } wait 1 : loop

に変更した所、送受信に成功する事が出来ました。
ですが、たまに送受信に失敗する事があります・・・Orz(というより失敗する可能性の方が高いです。)
これは何故なのでしょうか?



ANTARES

リンク

2012/11/18(Sun) 06:06:59|NO.50736

 sockputbのstatの処理が間違っています。
マニュアルを読み直しましょう。

 どこでエラーが起きたかを知ることがデバッグの第1歩です。
エラーが起きたことだけでなく、
どこでエラーが起きたのかもわかるようにしておきましょう。
どの命令でエラーが起きたかがわかれば、
デバッグは90%終わったようなものです。



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