linuxqie 发表于 2011-08-16 16:05

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-16 16:09

本帖最后由 jiayanfu 于 2011-08-17 17:50 编辑

貌似是p2p、nat洞穿之类的,把他们的网关或者net服务器之类的都给透明处理掉,最终形成一个虚拟局域网的环境。我是菜鸟哦{:2_168:}。。。求大牛拍砖

查了一下,在这儿改正。p2p纯属我扯淡,抱歉。nat洞穿,合理的叫法应该是叫nat穿透技术。我觉得可以满足楼主的要求

对于这种不负责任的错误的说法,做自我检讨了,对不起!以后力求改正!往大家监督

linuxqie 发表于 2011-08-16 16:12

有没有什么代码参考呀!~~~~~~~~~谢谢你的回复!~~~

jiayanfu 发表于 2011-08-16 16:24

回复 3# linuxqie


    这个真没有!

zcheung 发表于 2011-08-16 19:47

去学学计算机网络和Cisco的内容,明白什么是“路由”和“路由协议”就明白你说的问题了

zcheung 发表于 2011-08-16 19:49

BTW : 你说的这个问题和代码无关和原理有关

jiayanfu 发表于 2011-08-16 21:25

回复 6# zcheung


    阁下是不是给举个例子。。。。

eagle_blue_sky 发表于 2011-08-16 22:44

回复 1# linuxqie


    不同的网段的IP地址通讯可以通过静态路由来解决,你找本将IP的书籍看看就可以。

linuxqie 发表于 2011-08-17 08:06

我有点笨,像socket编程如果知道对方IP地址就完全可以跟任何人通信(bind就可以 然后connect(tcp)),现在我要是写程序的话怎么填对方的ip地址(inet_pton(AF_INET,"对方地址",&hisend.sin_addr),现在的问题是如何填写对方ip地址,即使知道对方的外网ip地址,路由是根据什么传给对方呢?是根据port还是根据mac地址?从现在看port比较靠谱一些,但是问题是对方局域网有很多局域网ip,如果port号都是弄一样的,貌似这样看也找不着对方。请详细指导下哈!~~~~~谢谢啦!~~~~~

linuxqie 发表于 2011-08-17 08:07

回复 8# eagle_blue_sky


    能告诉我具体是哪本书吗?谢谢你的回复!~~~
页: [1] 2
查看完整版本: linux下怎么实现socket编程实现广域网通信问题