我做了个程序.局域网之间的通信一般用ip地址如192.168.1.100 和192.168.1.101就可以实现2台机器的通信了.
但是如果把程序放到局域网外面怎么办啊? 是不是用路由器的ip地址+上自己的ip地址?
但是如果把程序放到局域网外面怎么办啊? 是不是用路由器的ip地址+上自己的ip地址?
解决方案 »
- DevExpress.XtraTreeList.TreeList dtlTree(树节点问题)
- 服务器端开发问题
- 关于嵌套母版页的页面间传递值
- this.btnUpdate.Click += new System.EventHandler(this.btnUpdate_Click);(20分相送)
- 有在湖北荆州做.NET开发的朋友吗?在荆州一个有三四年开发经验的技术熟手月薪大概有多少?谢谢!
- asp.net(c#)中怎么调用外部dll中的事件(dll为C++写的COM组件)?我把那个dll导进来了,但是不会用它里面的事件,谁能教教我,着急。。。
- 单引号和双引号是不是成对存在的
- 蓝牙拔出后 串口关不掉 重新插入蓝牙 连接不上
- 请教:OracleClient问题
- 请推荐:设计模式的书?
- 动态生成Treeview子节点
- C#操作Excel生成柱状图,分不够再加
同个局域网使用IP就行 如果连接外网的话需要你目标公网IP
其他不用 TCP连接就成
你发送连接给目标主机 目标主机就能获取你公网的IP往回发送数据
网关有防火墙或者策略限制除外
NAT模式:由于IP的数量有限,这个是减少IP使用量的一种方式,共享上网一般都是用这个
假设,内网使用192.168.1.*这个网段,路由器的LAN端IP为192.168.1.1,WAN端IP为202.43.43.2(公网IP)
内网中,你的机器IP为192.168.1.2,你同学192.168.1.3,假设你和他同时上qq(假设本地用3000端口),连接同一台qq服务器(4000端口)。如果是不作任何处理,qq服务器只知道IP为202.43.43.2:3000的机器要连它的4000端口,此时就不能区分到底是你的机器还是你同学的机器。
在支持NAT的路由器中,则增加了一张NAT映射表,他会以某种算法将端口进行转换。如上例,你用QQ连接服务器的时候,你的机器使用3000端口,但路由器会使用3001去连接服务器,然后在表中加上一个对应关系如:192.168.1.2:3000-3001,同理你同学的也有可能这样192.168.1.3:3000-3002,这样一来,QQ服务器可以区分两个不同的服务了(机器),一个是202.43.43.2:3001,另一个是202.43.43.2:3002
有了这个,就会导致内网机器是无法暴露在外网之中的,因为即使你机器监听了3000端口,外网去连3000端口也是徒劳的,NAT有转换规则,也许把3000转换到另一台机器另一个端口去了。但一般路由器都支持端口映射,例如将3000端口映射到192.168.1.2:3000,那么路由器会优先这个规则,从192.168.1.2:3000端口发送的数据全部用3000端口转发,而从3000端口接收到的数据也全部转发给192.168.1.2:3000对于这种路由,解决方法是假设中转服务器,一台暴露在公网中的服务器,如QQ服务器。
具体怎么弄,我没深入研究。