ソースを貼るのを忘れてました。
これが先ほど言ったモジュールです。
#module "myranking"
#include "hspsock.as"
/*
rankget
ランキングのデータを取得します。
sname サーバー名 ドメイン名、IPアドレス可
path サーバーから見たデータファイルへの相対パス 最初に/を忘れないでください
size 最大サイズ
*/
#defcfunc rankget str sname,str path,int size
sockopen 0,sname,80
getip
ip=refstr
data={"
GET "}+path+{" HTTP/1.1
Accept: text/plain
Accept-Charset: Shift_JIS
Accept-Language: ja,en
Allow: GET
Cache-Control: no-cache
User-Agent: HSP/3.4(Compatible; "}+sysinfo(0)+{")
Host: "}+ip+{"
connction:keep-alive
content-Language: ja,en
"}
sockput data,0
repeat
if stat=0:break
if stat=1:mes "タイムアウトしました。":stop
if stat=2:mes "サーバーとの通信でエラーが発生しました。":stop
await 1
loop
sockget result,size,0
if stat!0:mes "サーバーとの通信でエラーが発生しました。":stop
split result,"\n",result2
foreach result2
c=cnt
if result(0)!"HTTP/1.1 200 OK":mes "サーバーにデータがありません":stop
if result(cnt)="":break
await 1
loop
repeat length(result2)-c
if cnt=0{
result3+=result2(c+1)
}else{
result3+="\n"+result2(c+cnt+1)
}
await 1
loop
return result3
/*
rankput ランキングのデータを更新します
sname rankgetと同じ
path rankgetと同じ
string 新しいデータ。 これはランキングの変わらない部分も合わせたものを指定します。
逆に言うとここに空文字列等を指定すればデータの初期化も可能です。
*/
#deffunc rankput sname,str path,str string
sockopen 0,sname,80
getip
ip=refstr
data={"
POST "}+path+{" HTTP/1.1
HOST: "}+ip+{"
User-Agent: hsp/3.4("}+sysinfo(0)+{")
Accept: texi/plain
Accept-Language: ja,en
Accept-Charset: Shift_JIS
Connection: keep-alive
Content-type: text/plain
Content-Length:"}+strlen(string)+{"
"}+string
sockput data,0
repeat
if stat=0:break
if stat=1:mes "タイムアウトしました。":stop
if stat=2:mes "サーバーとの通信でエラーが発生しました。":stop
await 1
loop
sockget result,size,0
if stat!0:mes "サーバーとの通信でエラーが発生しました。":stop
split result,"\n",result
if result(0)!"HTTP/1.1 200 OK":mes "データの更新に失敗しました。"
return
先ほども言ったように未熟なプログラムですが、
参考になれば幸いです。