我翻阅了许多网络编程方面的书箱,常常能够看到“在局域网下的文字聊天”“在局域网下的视频聊天”这样的字样。可是我用了其中的代码,发现有时用本机在公网的IP也能链接,但有时也链接不上。我想向各位高手请教几个问题:
一、公网与局域网的网络编程有什么不一样?为何有些书要强调“局域网”几个字?
二、为何本机在公网的IP也能链接,但有时也链接不上?
三、我想让处于公网的不一样电脑都能进行通讯,代码怎么写?
谢谢!!编程
这个问题,, 看TCP/IP协议就知道了,通常来讲,IP地址是有ARP协议实现的~,对外网来讲,经过一个路由器出去的 IP是惟一的,具体的看书把windows
公网就是一个很大很大的局域网
只要你能找到对方就能能够互通.服务器
局域网与公网通讯,要考虑私有ip地址分配,防火墙,nat穿透等问题网络
公网的IP都是合法的地址,经过这个IP就能找到这个公网机器
局域网机器是内网IP地址,它要能被公网机器访问,须要服务器等作NAT等工具
主要就是NAT地址转换的问题。。。。解决这个其实就都能用了设计
公网涉及到P2P技术,若是机子都是公网,那跟内网就同样了,若是即有公网又有内网或者在不一样的内网中就要用到点对点技术打洞了.你能够参考一下<windows网络与通讯程序设计>P2P那一章.视频
外网IP,内网IP 均可以直接访问外网IP
外网IP不能直接访问内网IP
不一样网段的内网IP不能直接互相访问
同网段的内网IP能够直接互相访问游戏
局域网的ip是静态的,公网的ip通常是动态的,在变化,因此有时会链接不上ip
主要是NAT映射路由
没什么不一样,协议相同编程就相同,外网很庞大,要作到穷搜索是很难的,因此若是要作聊天工具,都是你们要登录到1个指定IP服务器上实现1服务器对多客户的通信,若是是局域网,机器比较少,服务器端就能够不须要了,能够经过穷搜索方式实现点对点通信.
因为机器数量少,因此能够不要服务器端,任何1个客户均可以成为服务器端,不过TCP/IP协议作这个工做有点不太合适,IPX是最合适的无服务器模式协议,这也是不少网络游戏在玩局网模式时使用的是IPX协议,在玩互联网时就用TCP/IP协议登录到某个服务器(战网)的缘由.
一、局域网编程和公网编程没有什么不一样;
二、公网IP是全球惟一的、可见的,局域网IP对公网来说是透明的,不可见的;
三、IP段:192.168.X.X 属于局域网使用。
关键在于公网IP能路由,私有IP地址不能路由,要作NAT
局域网可看作是公网的一个特例,或者说是最简单的一个公网,但它有本身的特色,与公网又存在显著差别。
这些都是最基本的问题。看TCP/IP协议方面的书吧。
建议看《Windows网络编程第二版中文版》,只要把书上的东东都搞懂了,确定你对网络编程上一台阶的。要坚持。
局域网的IP地址问题比较简单,直接就能够指定,可是公网就复杂了,若是机器是直接连在公网上的,有公网IP,那和局域网差很少,若是是经过NAT的,那就麻烦得多。
1。最大区别就是公网聊在要作NAT,局域网聊天只是在192。168。1。X这个不须要NAT。 2。有时用本地在公司网的IP地址可直接链接上,说明你的路由器是全映射性路由器,那种路由器是最简单的全双工路由, 好比,华为3COM WBR204+的路由器可能就不行了,它能够设置,半双工,全双工等,网络好多P2P源码是在上面通不过的, 3。要想在不网段间两个用户间能聊天就人作NAT(就是穿透防火墙), 我专门作P2P的,有什么问题发邮件我啊,个人有资料!MSN:northwolf521@hotmail.com