WinSockはLANの中しか動かないのですか? – プログラミング – Home

WinSockはLANの中しか動かない...
 
通知
すべてクリア

WinSockはLANの中しか動かないのですか?


o_2
 o_2
(@o_2)
ゲスト
結合: 22年前
投稿: 31
Topic starter  

今、Winsockで、2人で、Recvとsendで、簡易チャットをやっていますが、
家のLAN内のパソコンでは2人でやりとりできるのですが、
外部からのパソコンで行うと動作しません。
(ホストの名前取得で、192.168.1.49(LAN用IP)で、
192.168.1.49にクライアントからサーバーに送ると届きますが、
外部用のIP:211.19.xxx.xでクライアントからサーバーに送ると届かない。)

WinSockはLAN用のプログラムなのですか?
それとも、LAN用の関数と、ネットワーク用とにわかれているのですか?

家から家(OK)

家から外部の家(×)


引用解決済
トピックタグ
アイススケーター
 アイススケーター
(@アイススケーター)
ゲスト
結合: 23年前
投稿: 280
 

サブネットマスクの設定でマスクしてあるからでは。

192.168.1.49
211.19.xxx.x

この2つの間で接続するには、両方のサブネットマスクを

0.0.0.0

とする必要がありますが、現実的ではないと思います。
tcp/ipの本を読みましょう。(又は、インターネットで検索)


返信引用
アイススケーター
 アイススケーター
(@アイススケーター)
ゲスト
結合: 23年前
投稿: 280
 

追伸

まず、PINGを使って、通信できるかを確認して下さい。

PING 192.168.1.49


返信引用
o_2
 o_2
(@o_2)
ゲスト
結合: 22年前
投稿: 31
Topic starter  

PING 192.168.1.49

は動きましたが、

PING 211.19.xxx.x

は動きません。

単体からつないだパソコン(ルータなしのADSL)ならできるのでしょうか?
また192.168.1.49でやると、211.19.xxx.xの方が使えないのでしょうか?
(WinsockでIP変換してくれる関数はないでしょうか?)


返信引用
アイススケーター
 アイススケーター
(@アイススケーター)
ゲスト
結合: 23年前
投稿: 280
 

サブネットマスクは?


返信引用
o_2
 o_2
(@o_2)
ゲスト
結合: 22年前
投稿: 31
Topic starter  

TCPのIPアドレスが、”IPアドレスを自動的に取得”になっており、
サブネットマスク・IPともに設定していません。
(設定したら、
IP:211.19.xxx.x
サブネットマスク:255.254.0.0 0.0.0.0 
で動かなくなりました。)

ゲートウェイがLANからWANを経由の中間点らしいのですが、関係あるのでしょうか?


返信引用
けみ
 けみ
(@けみ)
ゲスト
結合: 23年前
投稿: 22
 

ほとんどのルータのデフォルトで不要なポートはブロックする
設定になっていると思いますので、作成したアプリの使っている
ポートのフィルタ設定を確認してみて下さい。(相手側も)

その後で、ルータのNATやIPマスカレード等の設定を確認して
みてはいかがでしょうか。(もちろん相手側も)

ルータが正しく設定してあれば、特に意識せず、
送信先:相手のアドレスで問題ないと思います。
アドレスの変換はルータがやってくれます。

>PING 211.19.xxx.x
についてはよく分かりません。


返信引用
o_2
 o_2
(@o_2)
ゲスト
結合: 22年前
投稿: 31
Topic starter  

>ほとんどのルータのデフォルトで不要なポートはブロックする
>設定になっていると思いますので、作成したアプリの使っている
>ポートのフィルタ設定を確認してみて下さい。(相手側も)

ルータ上で、ローカルサーバー機能というものを使って、
ポート開始8番、終了8番で自分のマシンのIPに設定しました。

>その後で、ルータのNATやIPマスカレード等の設定を確認して
>みてはいかがでしょうか。(もちろん相手側も)

デフォルトゲートウェイにはルータのIPを、DNSには、プライマリDNSとセカンダリDN
Sを入力しましたが

できませんでした。
ポート8番で外部クライアントからうちのサーバーに通しても動きません。


返信引用
o_2
 o_2
(@o_2)
ゲスト
結合: 22年前
投稿: 31
Topic starter  

PINGは
PING 192.168.1.49
PING 219.103.x.x (動的IPアドレス)
両方動くようになりました


返信引用
けみ
 けみ
(@けみ)
ゲスト
結合: 23年前
投稿: 22
 

ふと思ったんですが、作成されたチャットプログラムは
TCPで接続しています?
もしそうなら、ちょっと改造してポート80番で動くようにして
ルータの設定をWebサーバーを外部に公開する設定にしてみると
うまく通信できませんか?

うまくいくようなら、後はプログラムを元に戻して、ルータの
設定をWebサーバー公開でやったようにして、ポートの部分を
書き換えればいけそうな感じですけど。。

#IISとか動いているときは止めないとだめですけど。。
#うまくいかなかったらごめんなさい。


返信引用
o_2
 o_2
(@o_2)
ゲスト
結合: 22年前
投稿: 31
Topic starter  

だめでした。
ルータでDHCPサーバーを無効にして、
HTTPDを立ち上げて、
友達からのパソコンから
自分のマシンのルータのグローバルアドレスに
アクセスしてもらったのですができませんでした。

NAT(アドレス変換)ポートフォワード機能が
ついているようなことが説明書にも書かれているのですが…、
(ルータBA512:バーチャルコンピュータ機能・ローカルサーバー機能)

うちからWAN側IPで呼び出すと、ルータにアクセスしてしまいます。

どうもグローバルIPアドレス=>プライマリIPアドレスに
うまく変換できてないようです。

今日、業者に連絡したら、1日中通話中でした・・・

>ふと思ったんですが、作成されたチャットプログラムは
>TCPで接続しています?
>もしそうなら、ちょっと改造してポート80番で動くようにして
>ルータの設定をWebサーバーを外部に公開する設定にしてみると
>うまく通信できませんか?

TCPです。TCPの8番でやりとりしています。
80番では、HTTPDを立ち上げて
ルータの

マルチNAT(バーチャルコンピュータ機能)有効
グローバルIPアドレス       ー> プライベートIPアドレス
61.205.219.148         ->192.168.1.37

ローカルサーバ
対象プロトコル 外部ポート 転送先プライベートIPアドレス
TCP 80 192.168.1.37

として友達からアクセスを頼んだのですが、
動きませんでした。(index.htmlもhttpdの上においていてLAN上からではみれました)

それとも、ポートフォワード機能がついていないのでしょうか?
(ルータBA512:
バーチャルコンピュータ機能・ローカルサーバー機能は違う?
または、動的WAN側IP1個だけだと、ルータにIPをとられてします?


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました