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


HSPTV!掲示板


未解決 解決 停止 削除要請

2018
0729
イナウサローカルサーバー的なやつの作成12解決


イナウサ

リンク

2018/7/29(Sun) 22:08:30|NO.84888

お久しぶりです。
題名にも書きましたが、ローカルサーバーで時計みたいなものを作りたいのです。
表示する相手はスマホのブラウザ。
サーバーのIPアドレスをaaa.aaa.aa.aa
スマホのIPアドレスをbbb.bbb.bb.bb
として何か方法がありましたら、教えてください。



この記事に返信する


あらや

リンク

2018/7/29(Sun) 23:25:12|NO.84890

うーん。
少しこちらの質問とかぶるのですが
http://hsp.tv/play/pforum.php?mode=all&num=84882

スマホ側は
exec "http://aaa.aaa.aa.aa",16;		// ブラウザでPCのhtmlページを開く

これだけでいけそうです。 PC側はgettimeを使えばdishでJavaScriptに変換するだけでHTMLページは作れそうですが WEBサーバー化してHTMLを開かせるのはHSPだけでは難しい気がします。 別途でWEBサーバー化できるソフトが必要かもしれません。



イナウサ

リンク

2018/7/30(Mon) 16:55:30|NO.84896

スマホではブラウザ上(すでに存在するChromeやSafari)で開く感じです。
考えていたのは、あらかじめスマホに実行ファイルを入れるわけではないです。



あらや

リンク

2018/7/30(Mon) 19:11:01|NO.84897

なるほど、スマホ側は何かを開発する必要はなかったのですね。

しかしながら、結局PC側に関してはApacheなんかのソフトでサーバー化するのがいいのでは?

仮にhspsockなどを使ってPCをサーバーとして待機させたとして
ブラウザから『http://PCのIPアドレス:ポート番号』にアクセスしても
クライアントとして扱えないような気がするので(試してませんが)
ブラウザで表示できるWEBページを返せないかと思います。



イナウサ

リンク

2018/7/30(Mon) 21:59:17|NO.84901

そういう事があるのですね。
単純に文字だけ出すみたいな事も出来ませんか?



イナウサ

リンク

2018/8/3(Fri) 11:48:47|NO.84949

ローカル環境でwebページを表示できそうなコードを書いてみました。
しかし、インターネットエクスプローラーでは表示されませんでした。
やはり、あらやさんの言う通り、hspでは無理なのでしょうか?
以下コード

#include"hspsock.as" ipget:mes refstr sockmake 1,2000 if(stat!0){mes"Error":end}else{mes"MadeServer"} repeat sockwait 1 if(stat=0):break await:loop repeat sockput "HTTP/1.1 200 OK",1 sockput "\n",1 sockput "content-Type:text/html>",1 sockput "\n",1 sockput "<Connnection: close>",1 sockput "\n",1 sockput "<!DOCTYPE html>",1 sockput "\n",1 sockput "<html>",1 sockput "\n",1 sockput "<head>",1 sockput "\n",1 sockput "<title>helloHTML</title>",1 sockput "\n",1 sockput "</head>",1 sockput "\n",1 sockput "<body>",1 sockput "\n",1 sockput "Hello",1 sockput "\n",1 sockput "</body>",1 sockput "\n",1 sockput "</html>",1 sockput "\n",1 if(stat!0):mes"Error" await 10000 loop



no name

リンク

2018/8/3(Fri) 14:57:32|NO.84953


#include"hspsock.as" ipget:mes refstr sdim put put += "HTTP/1.1 200 OK\n" put += "Content-Type: text/html;charset=shift-jis\n" ;文字コードをついでに指定 put += "Connection: Close\n\n" ;HTTPヘッダーの最後は改行x2 put += "<!DOCTYPE html>\n" put += "<html>\n" put += "<head>\n" put += "<title>helloHTML</title>\n" put += "</head>\n" put += "<put>\n" put += "Hello\n" put += "</put>\n" put += "</html>" *main sockmake 1,2000 if(stat!0){mes"Error":end}else{mes"MadeServer"} repeat sockwait 1 if(stat=0):break if(stat>1){mes"Error":end} await loop sockput put,1 if(stat!0):mes"Error" sockclose 1 goto *main
こんな感じでどうでしょうか。

sockputは一回にまとめて大丈夫です。(逆に大量に送りつけるのはHTTPの仕様的に×)


ちなみに余談ですが、*main のrepeat後、sockgetでリクエスト内容を取得して加工すれば、 パスに応じて返答を振り分けることもできますよ。



no name

リンク

2018/8/3(Fri) 21:52:42|NO.84958

一括置換かけたら

put += "<put>\n" put += "Hello\n" put += "</put>\n" put += "</html>"
こんなことになってしまってたのに今頃気づいたのでご利用の際は

put += "<body>\n" put += "Hello\n" put += "</body>\n" put += "</html>"
への修正をお願いします



イナウサ

リンク

2018/8/4(Sat) 13:57:17|NO.84967

非常に参考になるスクリプトありがとうございました。
しかし、no nameさんのスクリプトをそのまま試してみた結果、「このページを表示できません」と
表示されます。
環境
Windows10
internetExplorer
↓入力したURL?
http://aaa.aaa.aa.aa:2000/



イナウサ

リンク

2018/8/4(Sat) 14:04:27|NO.84968

もちろんhsp側のウィンドウでは接続させるたびにmadeserverと表示されてます



no name

リンク

2018/8/4(Sat) 14:24:21|NO.84969

sdimで十分なメモリが確保されていなかったようなので(それにより途中まででデータが切れていた?)
とりあえず
sdim put,250
あたりに設定してみてください(これで動作することは一応確認済)



イナウサ

リンク

2018/8/24(Fri) 21:12:10|NO.85175

返信遅れてすみません。
やはり自分の環境ではできませんね。
もう少し色々と試してみます。



イナウサ

リンク

2018/8/25(Sat) 16:26:46|NO.85196

よくわかりませんができました。皆様ありがとうございました。



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