linux下怎么实现socket编程实现广域网通信问题
本帖最后由 linuxqie 于 2011-08-16 16:07 编辑本人对TCP/IP协议有一定的了解,但是脑海里找不出用socket编程怎么实现广域网通信问题(局域网已经实现),
现在我的疑问是假如A与B处在不同网段,而且ip地址都是192.168.1.5(这个ip地址是路由分配的),我用socket
怎么实现通信呢?(换句话说就是不知道用socket编程怎么知道对方的真正的ip地址?如果我知道对方的真正地址
那么我就bind就行了,现在问题就是不知道地址所以没办法实现bind?)求高手解决?这个问题困扰我N久了。
谢谢!~~~谢谢!~~~
也可以推荐看写什么书!!~~~~~~~~~~~越详细越好!~~ 本帖最后由 jiayanfu 于 2011-08-17 17:50 编辑
貌似是p2p、nat洞穿之类的,把他们的网关或者net服务器之类的都给透明处理掉,最终形成一个虚拟局域网的环境。我是菜鸟哦{:2_168:}。。。求大牛拍砖
查了一下,在这儿改正。p2p纯属我扯淡,抱歉。nat洞穿,合理的叫法应该是叫nat穿透技术。我觉得可以满足楼主的要求
对于这种不负责任的错误的说法,做自我检讨了,对不起!以后力求改正!往大家监督 有没有什么代码参考呀!~~~~~~~~~谢谢你的回复!~~~ 回复 3# linuxqie
这个真没有! 去学学计算机网络和Cisco的内容,明白什么是“路由”和“路由协议”就明白你说的问题了 BTW : 你说的这个问题和代码无关和原理有关 回复 6# zcheung
阁下是不是给举个例子。。。。 回复 1# linuxqie
不同的网段的IP地址通讯可以通过静态路由来解决,你找本将IP的书籍看看就可以。 我有点笨,像socket编程如果知道对方IP地址就完全可以跟任何人通信(bind就可以 然后connect(tcp)),现在我要是写程序的话怎么填对方的ip地址(inet_pton(AF_INET,"对方地址",&hisend.sin_addr),现在的问题是如何填写对方ip地址,即使知道对方的外网ip地址,路由是根据什么传给对方呢?是根据port还是根据mac地址?从现在看port比较靠谱一些,但是问题是对方局域网有很多局域网ip,如果port号都是弄一样的,貌似这样看也找不着对方。请详细指导下哈!~~~~~谢谢啦!~~~~~ 回复 8# eagle_blue_sky
能告诉我具体是哪本书吗?谢谢你的回复!~~~
页:
[1]
2