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


HSPTV!掲示板


未解決 解決 停止 削除要請

2009
1125
けいtcp/ipについて10未解決


けい

リンク

2009/11/25(Wed) 23:46:19|NO.28979

最近私は簡単なチャットを作りました
hspsockではうまくいかなかったのでpcbnet2を使って作りました
自分のPCで起動するにはよいのですが、友達のPCと繋ぐと駄目でした
どうすれば離れた友達と通信できるでしょうか?
ちなみに、いろいろ調べてみたところプライベートIPはLAN上の通信にしか使えないようなことを書いた記事を見つけました
じゃぁグローバルIPを使えばいいのかとかいろいろ思うのですが
まず、LAN上にないPCと接続するにはどんな手順を踏まないといけないのかといううことがいまいちわからないです
一応スプりクト張っておきます 
 
サーバー

#include "pcbnet2.as" #include "hspsock.as" x=25 nama="" honnbunn="" namae="02" naiyou="" kaunnta=-1 title"サーバー" ipget mes"あなたのIPアドレスは"+refstr+"です、これを相手に事前に教えておいてください" button"待機する",*待機中 stop *待機中 cls tcpmake sock,50000 mes"待機中" repeat tcpwait sock if stat=1:tcpaccept socket,sock:break await 100 loop mes"接続されました" await 1000 cls input naiyou,600,20,40 button"送信",*送信 *受信 repeat tcpget nama,3,socket tcpget honnbunn,40,socket if stat!0 :x=x+20 :kaunnto=kaunnto+1:pos 0,x :: mes""+nama+" :"+honnbunn+"" : if kaunnto>21 {kaunnto=0:x=25:cls:input naiyou,600,20,40:button"送信",*送信:mes""+namae+": "+naiyou+""} await 100 loop stop *送信 kaunnto=kaunnto+1 if kaunnto>21 :kaunnto=0:x=25: cls :input naiyou,600,20,40:button"送信",*送信 tcpput namae,socket tcpput naiyou,socket x=x+20 pos 0,x mes""+namae+" : "+naiyou+" goto*受信
クライアント

#include "pcbnet2.as" x=25 naiyou="" namae="" nama="01" ip="" honnbunn="" kaunnta=-1 *エラー title "クライアント" mes"相手のIPアドレスを入力してください" input ip,200,20 button "接続する",*接続 stop *接続 tcpopen sock1,ip,50000 repeat 10 tcpiscon sock1 if stat=1 : goto*完了 await 200 loop cls : await 500: mes"接続できません" : goto*エラー stop *完了 mes"接続しました" await 1000 cls input honnbunn,600,20,40 button"             送信          ",*送信 *受信 repeat tcpget namae,3,sock1 tcpget naiyou,40,sock1 if stat!0:x=x+20 : pos 0,x:kaunnto=kaunnto+1 ::mes""+namae+": "+naiyou+"": if kaunnto>21 {kaunnto=0:x=25:cls:input naiyou,600,20,40:button"送信",*送信:mes""+namae+": "+naiyou+""} await 100 loop stop *送信 kaunnto=kaunnto+1 if kaunnto>21 : kaunnto=0 : x=25 : cls :input honnbunn,600,20,40 :button"送信",*送信 tcpput nama,sock1 tcpput honnbunn,sock1 x=x+20 pos 0,x mes ""+nama+": "+honnbunn+" goto*受信



この記事に返信する


inovia

リンク

2009/11/26(Thu) 07:47:48|NO.28982

グローバルアドレスはルーターを使っている場合はipgetで取得できません。

「IPアドレス 自分 調べる」などのキーワードで自分のグローバルアドレスを調べてください。

HSP上でグローバルアドレスを取得するスクリプトがネット上にあった気がします。それを使う手もありかな。

もう一つ注意する点はサーバー側になるほうはルーターのポート開放が必要です。

ポート開放の仕方はネット上にたくさんあると思います。



けい

リンク

2009/11/26(Thu) 16:13:49|NO.28986

なるほど
つまり、
サーバーはルーターのポート解放
グローバルIP取得
ソフトで任意のポートで待機
通信

クライアントは相手のグローバルIP取得
相手の任意のポートへグローバルIPで接続
通信

でよいのでしょうか



inovia

リンク

2009/11/26(Thu) 16:59:25|NO.28987

> サーバーはルーターのポート解放
> グローバルIP取得
> ソフトで任意のポートで待機
> 通信
>
> クライアントは相手のグローバルIP取得
> 相手の任意のポートへグローバルIPで接続
> 通信

それでOKです。
それと、先ほど書きこんだ「グローバルIP取得」のモジュールです。
http://hspdev-wiki.net/?%BE%AE%A5%EF%A5%B6%2F%A5%B0%A5%ED%A1%BC%A5%D0%A5%EBIP%BC%E8%C6%C0



けい

リンク

2009/11/26(Thu) 17:16:23|NO.28988

わざわざありがとうございます^^
わかりましたもう一度その方法でやってみたいと思います



けい

リンク

2009/11/26(Thu) 19:11:44|NO.28992

すみません
友達とはもう少ししてから試してみようと思うんですが
いったん自分のPCで試してみたところ
グローバルIPで接続できませんでした
一応ポート開放はしたのですがなぜでしょう



@

リンク

2009/11/26(Thu) 19:15:50|NO.28993

自分のPCでしたら「127.0.0.1」です。

もう少しネットワークについて自分で勉強されてはどうでしょうか?



inovia

リンク

2009/11/26(Thu) 19:48:47|NO.28994

> いったん自分のPCで試してみたところ
> グローバルIPで接続できませんでした

試しにグローバルアドレスをhttp://を先頭につけて
自分のPCのブラウザに貼り付けるとわかりますが、ルーターの設定ページに飛ばされます。

(例: http://223.223.223.223/)

グローバルアドレスだと自分自身にアクセスできません。
LAN内の場合は、プライベートアドレスでないとアクセスできません。

(ルーターによるのかもしれませんが、BUFFALOとNEC製のルーターで確認済み)



inovia

リンク

2009/11/26(Thu) 19:50:21|NO.28995

> 自分のPCでしたら「127.0.0.1」です。

これはローカルループバックアドレスですね。



けい

リンク

2009/11/26(Thu) 20:09:43|NO.28996

>自分のPCでしたら「127.0.0.1」です。

>もう少しネットワークについて自分で勉強されてはどうでしょうか?

それは知っていました
自分のPCでグローバルIPで接続できるかどうか試してみただけです
でも、グローバルIPでは自分自身に接続できないと言うことは勉強不足でした
すみません
まだ友達とテストしていないので繋がるかどうかは定かではないですが



mo

リンク

2009/12/11(Fri) 11:15:46|NO.29228

1つ忘れてるようだから今更だけど補足しとくと

ルータのポートだけ開けてもルーティングも設定しないと
ルータから先のあて先がわからず接続できません



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