ネットワーク通信の構造を理解していないので、トラブルシューティングができなかったので、調べたことをまとめました。
OSI参照モデル
http://www.infraexpert.com/study/networking3.html
##前提
コンピューターが通信するときには、少なくとも「どの相手」に通信するかが分かっていないと、通信できない。
だからMACアドレス、ip、ポートを使って、どの機器のどのアプリケーションに通信するかを明確にする必要がある。
(低レイヤー層から順番に解説)
MACアドレス:PCとかwifiルーターについている物理的なネットワークの接続口(LANケーブルや、wifi)等。PCでもwifiとLANケーブルがあればどっちの接続口か判明させる為に、Macアドレスは2つになる。
ipアドレス:ネットワーク上に接続されている機器に割り振られている。
ポート:指定された、MACアドレス、pアドレスのどのアプリケーションと通信するかを、ポートで決定する。だから一アプリケーションは一ポートを占有する。
##デバッグをするとき
デバッグするときは、低レイヤー層からデバッグしていく。高レイヤー層でデバッグしても原因が低レイヤー層にあれば永遠に解決できない。
##URLから読み解くネットワーク通信
例えば、こんなurlがあるとする。
この例でいくと、"http://"http通信で、ip"192.168.0.107"の、"8080"というポートを占有しているアプリケーションを相手に通信する。