Tcp/Ip或UDP编程中的疑惑:
小弟初试Tcp/Ip编程,遇到如下编程,望大侠们解惑为感。Tcp/Ip编程,事先总要一方提供网络可视范围内的Ip地址,作为侦听的服务端。然而一些网络接入是通过同一个网关,将一个大局域网接入Internet(许多宽带商就用这种方式)。这样局域网内的诸如:192.168.0.X的机器不具有整个互联网内有效的IP地址,而外边所获得的只能是那个网关的IP地址。难道不同局域网下的192.168.0.X机器不可通信吗?还是我至少必须去申请一个全局的IP地址呢?(我的本意是用任意一台接入Internet的机器做服务端)。点对点(P2P)具体如何实现?
想做Internet内的B/S的系统,必须得去申请一个地址吗?这是不是同一个问题?去哪里申请,一般的程序是怎样的,要多少费用?
有人说局域网中的用Tcp/Ip编程,可照搬到Internet。这是什么意思?程序员眼中的网络视图到底是怎样的?
我想继续了解这方面的问题(网络编程方面),可以参考些什么书籍?网络编程方面有那些热门和前沿的东东好学?